반응형
특수문자등을 호출하는 경우 context로 해당 URI전달이 안돼 application의 error-page가 적용되지 않는 경우가 있다.
이런경우 Tomcat 엔진 자체의 설정을 통해 error-page를 내려줘야 한다.
1. 일반적인 error-page 동작
- web.xml
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
- status code와 보여줄 error page의 정보를 작성한다.
- 404 error가 발생한 경우 error.jsp가 정상적으로 호출된다.
2. 특수문자 등 비정상 URI를 호출할 경우
- %5c와 같은 특수문자 호출시 400error가 발생하지만 web.xml에 설정한 error-page설정이 동작하지 않는다.
- Tomcat 엔진 자체의 기본 error page가 호출된다.
3. Tomcat default errorpage 설정
- 위의 사례와 같이 Tomcat 엔진 자체에서 error page처리가 필요한 경우 설정한다.
<Host>
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false"
showServerInfo="false"
errorCode.400="/app/test/error.html"
errorCode.0="/app/test/error.html" />
</Host>
- className : catalina.jar내부에 포함된 ErrorReportValve class를 사용
- showReport : Error의 상세내용을 브라우져에 노출할지 여부
- showServerInfo : Tomcat 버전 등 서버정보 노출여부
- errorCode.0 : error발생시 보여줄 error page 설정(html만 가능)
- errorCode.400 : 특정 code에 대한 error page가 별도로 있다면 statuscode를 입력하여 작성(html만 가능)
- 정상적으로 error page가 호출된다.
반응형
위의 기능은 Tomcat9에서 추가되었으며 Tomcat8.5.84 이후 버전에서도 사용 가능하다.
반응형
'미들웨어 > Apache,Tomcat' 카테고리의 다른 글
Redis를 활용한 Tomcat session clustering (0) | 2024.04.05 |
---|---|
Apache method 제한하기(AllowMethods) (0) | 2023.06.24 |
Tomcat jmx-proxy를 활용한 모니터링 (1) | 2023.03.12 |
Tomcat Connector Threads 설정 정리 (0) | 2023.03.08 |
Tomcat Session Clustering 설정 (0) | 2023.03.05 |