반응형

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
반응형

 이클립스로 Dynamic Web Project를 만들었는데, Generate web.xml deployment descriptor을 선택하지 않아 web.xml이 없을 때가 종종 있다.

BGM : 행방 불명인가 보다~

Filter를 만드는 실습을 하던 와중에, web.xml이 없어서 당황했는데 처음에 프로젝트를 만들지 않아도 나중에 만들어주는 방법을 알게되었다.

(Filter : 한글깨짐을 방지하기 위해 Encoding을 해주는 상속해서 쓰는 클래스. 온갖 서블릿에 setCharset~을 안해줘도 되는 편리한 클래스 이다.)

 

해당 프로젝트를 오른쪽 마우스로 클릭하고, Java EE Tools > Generate Deployment Descriptor Stub를 클릭해주면 알아서 WEB-INF밑에 web.xml을 만들어 준다.

새로 프로젝트를 다시 만들어서 복사해서 갖고올게 아니라, 이런 방법으로 하면 더욱 간결하다!

반응형

'Java > JSP' 카테고리의 다른 글

[JSP] Filter 설정 / Encoding 편하게 하기  (0) 2019.12.14

+ Recent posts