2009-06-19 3 views
2

Tomcat의 오류 페이지 지시문을 사용하여 다양한 유형의 예외에 대한 다양한 오류 페이지를 표시하고 싶습니다. 그러나 원래의 요청 URL에 따라 오류가 발생한 오류 페이지의 스타일과 내용이 달라 지도록하고 싶습니다.원본 요청의 URL에 따라 다른 Tomcat 오류 페이지 표시

특히 웹 응용 프로그램의 관리 부분과 사용자 부분이 있습니다. 오류 페이지는 스타일 및 메뉴 측면에서 모두 달라야합니다. 특정 페이지가 어느 부분에 있는지를 구별하는 가장 확실한 방법은 URL에서 문자열을 찾는 것입니다. Tomcat 오류 페이지가 URL을 구문 분석하고 적절하게 스타일 지정된 오류 페이지로 리디렉션하는 서블릿을 가리 키도록하고 싶습니다.

그래서 1) JSP 대신 서블릿에 오류를 리디렉션하기 위해 오류 페이지 또는 다른 메커니즘을 사용할 수 있습니까? (그렇지 않다면 JSP 내에서 상상할 수있는 것을 할 수 있습니까?)

2) 일단 내 서블릿에 연결되면 오류가 발생한 요청 URL을 확인할 수 있습니까 (request.requestURI ' 작동하지 않는 것처럼 보입니다. 오류 JSP 자체의 위치를 ​​가리 킵니다.

답변

4

당신은 자세한 내용은 http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/jsp/ErrorData.html를 참조하여 web.xml

<error-page>를 통해 등록하여 오류 JSP에서

pageContext.errorData.requestURI 

에서 원래 requestURI를 얻을 수 있습니다.

서블릿을 사용하는 경우 오류 jsp 내에 <jsp:forward>을 사용하여 원하는 서블릿으로 전달할 수 있습니다.

+0

이제 어딘가로 가고 있습니다. 나는 이것을 1) 나는 시도해 보았고, 2) 응답을하기 위해 더 많은 시간을 할애 할 때까지 이것을 표시하는 것을 연기 할 것이지만, 이것은 분명히 내가 찾고있는 정보의 유형이다. 감사. –

+1

부끄러움처럼 작용했습니다. (requestURI에 특정 문자열이 포함되어 있는지 여부를 확인하고 전달할 경우 C :를 수행합니다.) –

+0

pageContext.errorData.requestURI 대신 pageContext.getErrorData(). getRequestURI()를 사용해야했습니다. – jackocnr

0

Tomcat의 오류 페이지는 응용 프로그램 오류를 표시하는 마지막 수단입니다 (오류 페이지가 실제로 실패 할 경우를 대비하여). 보통 비 기술적 인 오류를 표시 할 수있는 자체 오류 페이지를 작성해야합니다. 사용자에게 적합한 방식으로보기 (기본값) 및 기술보기 (사용자가 원할 경우).

+0

공정한 점, 그리고 사실 우리가 해냈습니다. 이 애플리케이션은 Spring MVC를 기반으로하며 더 많은 로컬에서 처리되지 않고 처리되지 않는 오류에 대한 Spring의 예외 해석을 사용한다. 그러나 응용 프로그램과 프레임 워크 범위 외부에서 발생하는 특정 오류는 여전히 Tomcat을 강타합니다. 자주 발생하는 특정 유형은 JSP 내에서 일종의 구문 오류입니다. –

+0

사실,이 경우에는 jimr의 대답을 중계해야합니다. 우리는 JSP를 사용하지 않으므로 모든 문제가 발생하여이를 잡아서 표시 할 수 있습니다. –

관련 문제