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);
	}

 

 

복사했습니다!