โข
์์ฒญ
โข
์๋ต
Servlet ์ธ์ฝ๋ฉ ์ค์ ๋ฐฉ๋ฒ
์์ฒญ ์ธ์ฝ๋ฉ ์ค์
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ๋ ์์ฒญ ๋ฐ์ดํฐ์ ์ธ์ฝ๋ฉ์ ์ค์ ํฉ๋๋ค.
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ์์ฒญ ์ธ์ฝ๋ฉ ์ค์
request.setCharacterEncoding("UTF-8");
// ํ๋ผ๋ฏธํฐ ์ฝ๊ธฐ
String data = request.getParameter("data");
}
}
Java
๋ณต์ฌ
์๋ต ์ธ์ฝ๋ฉ ์ค์
์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ์๋ต ๋ฐ์ดํฐ์ ์ธ์ฝ๋ฉ์ ์ค์ ํฉ๋๋ค.
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ์๋ต ์ธ์ฝ๋ฉ ์ค์
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("ํ๊ธ ์ถ๋ ฅ ํ
์คํธ");
}
}
Java
๋ณต์ฌ
web.xml์ ํตํ ์ ์ญ ์ค์
๋ชจ๋ Servlet์ ๋ํด ์ธ์ฝ๋ฉ์ ์ผ๊ด ์ค์ ํ๋ ค๋ฉด web.xml์ ํํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค:
Spring Framework ์ ๊ฒฝ์ฐ
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
XML
๋ณต์ฌ
์ปค์คํ ํํฐ๋ฅผ ์ฌ์ฉํ ์ธ์ฝ๋ฉ ์ค์
Spring์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ, ์ง์ ํํฐ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค:
@WebFilter("/*")
public class EncodingFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
}
Java
๋ณต์ฌ
์ฃผ์์ฌํญ
โข
request.setCharacterEncoding()์ request.getParameter()๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ์ค์ ํด์ผ ํฉ๋๋ค.
โข
response.setContentType()์ getWriter()๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ์ค์ ํด์ผ ํฉ๋๋ค.
โข
ํํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์์ฒญ์ ๋ํด ์๋์ผ๋ก ์ธ์ฝ๋ฉ์ด ์ค์ ๋์ด ํธ๋ฆฌํฉ๋๋ค.
โข
GET ๋ฐฉ์์ ๊ฒฝ์ฐ ์๋ฒ(Tomcat ๋ฑ)์ ์ค์ ๋ ํ์ธํด์ผ ํ ์ ์์ต๋๋ค.
JSP ์ธ์ฝ๋ฉ ์ค์ ๋ฐฉ๋ฒ
์์ฒญ ์ธ์ฝ๋ฉ ์ค์
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ๋ ์์ฒญ ๋ฐ์ดํฐ์ ์ธ์ฝ๋ฉ์ ์ค์ ํฉ๋๋ค.
๋๋ JSP ํ์ด์ง ์๋จ์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ ์ ์์ต๋๋ค:
์๋ต ์ธ์ฝ๋ฉ ์ค์
์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ์๋ต ๋ฐ์ดํฐ์ ์ธ์ฝ๋ฉ์ ์ค์ ํฉ๋๋ค.
web.xml์ ํตํ ์ ์ญ ์ค์
๋ชจ๋ JSP ํ์ด์ง์ ๋ํด ์ธ์ฝ๋ฉ์ ์ผ๊ด ์ค์ ํ๋ ค๋ฉด web.xml์ ํํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
XML
๋ณต์ฌ
์ฃผ์์ฌํญ
โข
request.setCharacterEncoding()์ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฝ๊ธฐ ์ ์ ํธ์ถํด์ผ ํฉ๋๋ค.
โข
JSP ํ์ด์ง์ pageEncoding๊ณผ contentType์ charset์ ์ผ์น์์ผ์ผ ํฉ๋๋ค.
โข
HTML ํ์ผ์ <meta charset="UTF-8"> ํ๊ทธ๋ ํจ๊ป ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.



