JSP 수업 듣는 중 Filter을 만들었다.
implements를 하려는데, 뭔가 Filter들이 많이나와서 당황했는데 하나하나 해보니까 doFilter 있는 것은 javax.servlet.Filter였다.
그래서 그 클래스를 선택하여 상속을 받았는데, 강의에서는 3개의 Override된 메소드가 있었으나 지금은 doFilter하나 뿐이었다.
아마 사람들이 doFilter만 쓰니까 저것 만 남긴 것 아닐까 싶다.
여튼, 하단의
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
코드를 작성해줘서 UTF-8 Encoding 설정을 코딩해줬다.
그리고 실행하니까 한글이 당연스럽게 깨졌다.
왜냐면 was녀석은 저 클래스를 인지 못 하기 때문이다.
그래서 우리는 저 Filter가 내 Filter다.
저 Filter가 이 web에서 쓰일 필터다!!!!
라는 것을 입력해줘야 한다.
어디에? web.xml에.
혹시, web.xml이 없어 당황스럽다면 내가 적은 다른 글을 참조하면 되겠다.
https://gwer.tistory.com/8?category=824313
[JSP] wbe.xml이 없을때
이클립스로 Dynamic Web Project를 만들었는데, Generate web.xml deployment descriptor을 선택하지 않아 web.xml이 없을 때가 종종 있다. BGM : 행방 불명인가 보다~ Filter를 만드는 실습을 하던 와중에, web.x..
gwer.tistory.com
위의 welcom-file 친구들은 web.xml이 기본적으로 가지고 있는 설정들이다.
하단의 filter 부분만 설정해주면된다.
그리고 실행을 하면!
뙇 하고 NotFound가 뜬다.
ㅂㄷㅂㄷ 왜 못찾는데!!!!!!! 쾅코아쾅
(격분)
끓어오르는 분노를 가라앉히며 침착하게 이클립스의 console에 가서 나의 과오를 확인해봤다.
java.lang.ClassNotFoundException: UserFilter
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:521)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:249)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:102)
~블라블라~
한마디로 니가 설정한 UserFilter라는걸 못 찾겠단 말이다.
그래서 경로를 확인해봤다.
아, com.session 밑에 들어가 있었당 ㅎ
머쓱한 마음으로 class의 경로를 com.session.UserFilter로 바꿔 주었다.
그리고 나서 실행을 하니 아주 잘되었다.
한글을 넣어준 후 실행하니 Encoding도 잘 되었당구리.
Filter란 클래스 하나만 있으면 serChar~어쩌고를 골백번 반복하지 않아도 되는 것 같다.
개이덕ㅎ
'Java > JSP' 카테고리의 다른 글
[JSP] wbe.xml이 없을때 (0) | 2019.12.14 |
---|