[SPRING] Spring DispatcherServlet을 사용하는 Custom 404
SPRINGSpring DispatcherServlet을 사용하는 Custom 404
나는 아래와 같이 web.xml을 설정했다. 또한 어떤 URL 패턴을 취한 다음 해당 jsp (-servlet.xml에서 설정 한 것)로 이동하는 주석 기반 컨트롤러가 있습니다. 그러나 .html로 끝나는 페이지 (jsp가 존재하지 않음)로 이동하면 맞춤 404 페이지가 표시되지 않고 로그에 아래 오류가 표시됩니다. .html로 끝나지 않는 페이지는 맞춤 404 페이지를 볼 수 있습니다.
DispatcherServlet을 통과하는 모든 페이지에 대해 사용자 정의 404 페이지를 구성하려면 어떻게합니까?
또한 오류 페이지를 정적 페이지 (예 : error.htm)로 설정하면 작동하지만, jsp (즉, error.jsp)로 변경하면 IllegalStateException이 발생합니다. 어떤 도움을 주시면 감사하겠습니다.
로그 오류
Caused by: java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:606)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
제어 장치
@RequestMapping(value = {"/**"})
public ModelAndView test() {
ModelAndView modelAndView = new ModelAndView();
return modelAndView;
}
을 포함한다.
<servlet>
<servlet-name>my_servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
...
<servlet-mapping>
<servlet-name>my_servlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
...
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
해결법
-
==============================
1.하나의 옵션은 모든 오류 페이지를 운영자 서블릿을 통해 매핑하는 것입니다.
하나의 옵션은 모든 오류 페이지를 운영자 서블릿을 통해 매핑하는 것입니다.
새 HTTP 오류 컨트롤러를 만듭니다.
@Controller public class HTTPErrorController { @RequestMapping(value="/errors/404.html") public String handle404() { return "errorPageTemplate"; } @RequestMapping(value="/errors/403.html") ... }
web.xml의 오류 페이지 매핑
<error-page> <error-code>404</error-code> <location>/errors/404.html</location> </error-page>
from https://stackoverflow.com/questions/1196569/custom-404-using-spring-dispatcherservlet by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스레드 내의 범위가 지정된 프록시 bean에 액세스 (0) | 2018.12.22 |
---|---|
[SPRING] Spring 3에서 최대 절전 모드 세션을 삽입하는 가장 좋은 방법 (0) | 2018.12.22 |
[SPRING] 스프링 부트 JMX에 원격으로 액세스하는 방법 (0) | 2018.12.22 |
[SPRING] 왜 서비스 계층을 사용합니까? (0) | 2018.12.22 |
[SPRING] Spring RESTTemplate을 사용하는 Generics (0) | 2018.12.22 |