15강 : 한글처리

유태형·2022년 4월 11일
0

JSP

목록 보기
15/17

출처

해당 게시글은 모두 인프런 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌 https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/dashboard에 출처를 두고 있습니다. 간략히 정리한 글 입니다




내용

전세계에는 수많은 언어가 존재하듯이 언어를 처리하는 인코딩도 여러 종류가 존재합니다. 여지껏 기본값 EUC-KR을 인코딩으로 사용해왔으나, 전세계 모든 언어를 처리할 수 있는 UTF-8로도 영어와 한글은 물론 다른 언어도 제한없이 사용할 수 있습니다. 설정하면 간편히 사용이 가능하기에 오늘날 많은 개발자들이 UTF-8인코딩을 사용합니다.

인코딩을 변경하는 방법은 총 3가지가 존재합니다.
1. JSP와 서블릿마다 설정하는 post방식
2. server.xml에 한번만 등록하는 get방식
3. 여러 JSP와 서블릿에 적용할 수 있는 Filter방식



Post 방식

서블릿

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charse=UTF-8");

request객체로 들어오는 요청 데이터를 인코딩하고, response객체는 UTF-8로 인코딩하여 브라우저에 응답합니다.

JSP

스크립트릿 태그내에 request.setCharacterEncoding("UTF-8");는 서블릿과 동일하고
page 지시어 내에 contentType속성은 response.setContentType()메서드와 동일합니다. pageEncoding속성도 UTF-8로 설정하면 JSP도 UTF-8로 인코딩가능합니다.



GET 방식

Project Explorer탭 내에서 Servers - Tomcat v8.5 ... - server.xml 파일의 <connector>태그내에 URIEncoding="UTF-8"속성을 삽입합니다.

모든 JSP와 서블릿에 설정하는 POST방식과는 다르게 서버에서 한번만 설정하면 모든 JSP와 서블릿에 동일하게 적용됩니다.



필터

서버로 요청이 들어올때, 서버에서 요청이 나갈때 마다 모두 필터를 거친다면 각각의 JSP,서블릿에서 인코딩은 물론 다른 설정을 할 필요가 없을 것 입니다.
서버에서 필터도 동일한 역할을 수행합니다. 서버오는 요청인 request객체를 필터링 하여 설정하고, 브라우저로 나가는 응답은 response객체를 필터링하여 설정하면 손쉽게 필터링이 가능합니다.

서블릿 맵핑과 유사하게 필터도 web.xml에서 맵핑할 수 있습니다. 다만 태그의 명칭은 다릅니다.

<filter>
	<filter-name>
    <filter-class>
</filter>
<filter-mapping>
	<filter-name>
    <url-pattern>
</filter-mapping>

필터는 Javax.servlet.Filter인터페이스를 참조합니다. 서블릿과 동일한 생명주기별 메서드가 구현되어있으며 순서대로 init() - doFilter() - destroy() 순으로 실행 됩니다.

필터가 실제로 적용되는 메서드는 doFilter입니다. 매개변수가 3개가 존재하는데 ServletRequest, ServletResponse는 서블릿에서 사용하던 HttpServletRequest, HttpServletResponse와 동일합니다. 마지막 FilterChain매개변수는 체인기법을 활용하는데 이용됩니다.




후기

인코딩이나 설정은 다양한 방식이 존재하고 특징을 아는것이 중요한것 같습니다.




GitHub

https://github.com/ds02168/Study_JSP/tree/master/15%EA%B0%95

profile
오늘도 내일도 화이팅!

0개의 댓글