3
在我的Spring MVC應用程序(servlet的3.0),我已經在web.xml中定義自定義錯誤處理程序:不是Tomcat的自定義錯誤處理程序捕獲的Spring MVC攔截器的錯誤響應
<error-page>
<location>/error</location>
</error-page>
映射到一個控制器:
@Controller
class CustomErrorController {
@RequestMapping("error")
public String customError(HttpServletRequest request, HttpServletResponse response, Model model) {
...
}
}
這適用於大多數錯誤,如404錯誤。 不過,我還定義它返回一個403響應的攔截,如果沒有身份驗證的用戶:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession httpSession = request.getSession();
((HttpServletResponse) response).setStatus(HttpURLConnection.HTTP_FORBIDDEN);
return false;
}
403響應不由自定義錯誤處理程序捕獲 - 瀏覽器只會越來越沒有響應錯誤代碼403.
我認爲這是因爲我在攔截器中做了一些不正確的事情 - 如何更改Interceptor中的代碼以便正常的錯誤處理工作?
如何將錯誤代碼附加到錯誤頁面? –