第一種
可以自定義403錯誤頁面
<security:http>
<!--處理403異常-->
<security:access-denied-handler error-page="403.jsp"/>
</security:http>
默認的403處理頁面是這樣的:
這種方式有局限性,只能處理403異常。
第二種(非spring boot項目)
在web.xml配置,可以針對不同的狀態碼提供不同的頁面。
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/403.jsp</location>
</error-page>
第三種:配置
@Component
public class ExceptionHandler implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
ModelAndView mv = new ModelAndView();
mv.addObject("errMsg",ex.getMessage());
if(ex instanceof AccessDeniedException){
mv.setViewName("forward:/403.jsp");
}else{
mv.setViewName("forward:/500.jsp");
}
return mv;
}
}
此外,還有一種配置方案,詳情見:https://www.cnblogs.com/wwjj4811/p/13199964.html(推薦使用這種方式)