JSP 태그를 사용하여 일부 데이터를 검색하는 JSP 페이지 (Tomcat)가 있습니다. 그러나 이러한 JSP 태그는 예외를 throw 할 수 있습니다 (예 : 매개 변수 값이 유효하지 않은 경우). 지금 나는이 상황에 대한 더 나은 오류 처리를 구현하고 싶다. GLOBALLY 예외 핸들러를 지정하는 방법을 찾지 못했습니다 (JSP에서 throw 된 예외에 대해 web.xml의 오류 페이지 정의가 작동하지 않음). 지금까지 찾은 유일한 방법은 모든 JSP 파일의 페이지 헤더에있는 errorPage 속성을 지정하는 것입니다.JSP 오류 처리기에서 HTTP 상태 코드를 설정하는 방법
<% page errorPage="/WEB-INF/jsp/errors/500.jsp" %>
모든 JSP에서이 작업을 수행하는 것은 상당히 어렵지만 허용됩니다. 그러나 오류 페이지는 항상 HTTP 상태 코드 200으로 전달된다는 사실은 받아 들일 수 없습니다. 대신 500을 원합니다. 서블릿을 JSP 대신 errorPage로 사용하여 시도하고 response.setStatus (500) 및 response.sendError (500)를 설정하려고 시도했지만 두 호출이 무시 된 것 같습니다. 그래서이 코드 인쇄 "200"두 번 나는 아무 생각이 왜 :
System.out.println(response.getStatus());
response.setStatus(500);
System.out.println(response.getStatus());
그래서 질문입니다 : 내가 JSP 오류 처리기에서 HTTP 상태 코드를 설정하는 방법?
필자가 쓴대로 : JSP에서는 web.xml의 오류 페이지 정의가 작동하지 않습니다. 나는 web.xml에 이미 Servlet에서 던져진 예외를 잡기 위해이 라인들을 정확히 가지고있다. 그리고 그것은 잘 동작하지만, 문제는 JSP에서 서블릿이 아니라 예외 처리이다. – kayahr