반응형
servletresponse의 setCharacterEncoding을 통해 UTF-8로 인코딩할 수 있도록 할 수 있고 setContentType을 통해 html 파일 형태로 내보낼 수 있다!
package com.newlec.web;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/notice-reg")
public class NoticeReg extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
PrintWriter out = res.getWriter();
res.setCharacterEncoding("UTF-8");
res.setContentType("text/html; charset=UTF-8");
//req.setCharacterEncoding("UTF-8");
String title = req.getParameter("title");
String content = req.getParameter("content");
out.println(title);
out.println(content);
}
}
servletFilter 사용
servlet filter는 servlet 파일 앞에 존재해서 클라이언트의 요청으로 servlet이 실행되기 전에 먼저 실행된다!
모든 경로에 filter를 씌우기 위해선 webfilter의 어노테이션을 이용해서 /*로 해주면 된다.( 참고로 해당 class를 만들기 전에 filter-servlet 라는 interface를 추가해주어야한다)
아래 코드에서 chain.doFilter 부분은 필터 다음에 servlet을 실행하기 위해서 존재한다. 따라서 filter로 처리해야할 부분이 있으면 그전에 작성해야한다. 그 다음 print부분은 servlet이 실행되고 난 뒤 실행된다.
package com.newlec.web.filter;
import java.io.IOException;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.annotation.WebFilter;
@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest req,
ServletResponse res,
FilterChain chain)
throws IOException, ServletException {
req.setCharacterEncoding("UTF-8");
chain.doFilter(req, res);
System.out.println("after filter");
}
}
반응형
'Back-end > JSP & Servlet' 카테고리의 다른 글
servlet servlet context 상태 저장소 (0) | 2022.07.03 |
---|---|
servlet 입력으로 배열 받는 방법 (0) | 2022.07.03 |
servlet 어노테이션을 활용한 url 매핑 (0) | 2022.07.01 |
servlet 웹 입/출력 (0) | 2022.06.30 |
개념 및 설치 (0) | 2022.06.27 |