第一种
可以自定义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(推荐使用这种方式)