URL 패턴
?는 한 글자, *는 여러 글자, ** 는 하위 경로 포함. 배열로 여러 패턴 지정
종류 | URL pattern | 매칭 URL |
1. exact mapping | /login/hello.do | http://localhost/app/login/hello.do |
2. path mapping | /login/* | http://localhost/app/login/ http://localhost/app/login/hello http://localhost/app/login/hello.do http://localhost/app/login/test |
3. extension mapping | *.do | http://localhost/app/hi.do http://localhost/app/login/hello.do |
/** : 경로가 있어도 되고, 없어도 된다. 경로는 여러 개도 가능
/? : 한 글자
URL 인코딩 - 퍼센트 인코딩
URL에 포함된 non-ASCII 문자를 문자 코드(16진수) 문자열로 변환
윤종찬 -> URLEncoder.encode() -> %ec%9c%a4%ec%a2%85%ec%b0%ac
<- URLDecoder.decode() <-
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>
<!-- 한글 변환 필터 끝 -->
CharacterEncodingFilter.class
@Override
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String encoding = getEncoding();
if (encoding != null) {
if (isForceRequestEncoding() || request.getCharacterEncoding() == null) {
request.setCharacterEncoding(encoding);
}
if (isForceResponseEncoding()) {
response.setCharacterEncoding(encoding);
}
}
filterChain.doFilter(request, response);
}
'Spring > Ch2. Spring MVC' 카테고리의 다른 글
Spring MVC - 로그인 페이지 만들기 (1) | 2022.09.19 |
---|---|
Spring MVC - redirect와 forward (0) | 2022.09.19 |
Spring MVC - 회원가입 페이지 만들기2 (0) | 2022.09.18 |
Spring MVC - 회원가입 페이지 만들기 (0) | 2022.09.18 |
Spring MVC - @ModelAttribute (0) | 2022.09.17 |