Search
Duplicate

์ธ์ฝ”๋”ฉ ์„ค์ •

โ€ข
์š”์ฒญ
โ€ข
์‘๋‹ต

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 ํŒŒ์ผ์˜ &lt;meta charset="UTF-8"&gt; ํƒœ๊ทธ๋„ ํ•จ๊ป˜ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.