응용 프로그램에서 예외를 관리하기위한 "fault barrier"전략을 구현하고 싶습니다. 애플리케이션에있는 한 가지 기능은 "패스 백 (passback)"응답의 개념입니다. 기본적으로 아무 작업도하지 않으므로 500, 400 등을 던지는 것보다 우선적으로 반환하고 싶습니다. HTTP 상태 코드 - 예 : 기본 예외가 throw 된 경우에도 우리의 외부 직면 응용 프로그램은 항상 유효한 응답을 반환해야합니다. 응용 프로그램의 내부 예외를 처리하고 여전히 유효한 noop 응답을 반환하고 싶습니다.오류 페이지 상태 코드 반환 200 기본 응답
우리의 첫 번째 구현은, 예를 들어, try/catch 블록에서 모든 요청을 포장하고, 캐치에서 기본 수익을 반환 서블릿 필터 :이 대부분 작동하지만
try{
chain.doFilter()
} catch (Throwable t) {
generatePassbackResponse(HttpServletRequest req, HttpServletResponse res)
}
을, 좋은 느낌 하나의 문제는 Exception이 Throw되었을 때 여전히 응답이 Status-Code : 500으로 끝난다는 것입니다.
HttpServletResponse.setStatus (예 : 멋진 텍스트를 반환 할 수 있습니다. 200)은 효과가 없으며 javadoc은 일반적인 요청에만 적용됩니다.
두 번째 구현 생각은 다른 페이지로 전달하거나 errorPage를 web.xml에 연결하고 해당 페이지로 수동으로 sendError를 보내야한다는 것입니다. 특정 추천자가 있는지 여부에 관심이 있지만.
우리가 시도한 기본 오류 페이지 처리기는 상태 코드를 무시할 수있는 것으로 보이지 않습니다. 상태 코드는 우리가 처리하려고 시도하는 것의 큰 부분이며 적어도 Glassfish에서는 응답 개체가 오류 응답에서 상태 코드를 설정할 수있는 것처럼 보이지 않습니다. 이것들은 서버 대 서버 응답이므로 대부분의 경우 사용자 브라우저가 아닙니다. RESTful 응답의 경우 상태 코드가 상당히 중요 할 수 있습니다. – jayshao