SpringMVC 跳转到自定义 404 页面的三种方法
有时候我们并不想跳转到系统自定义的错误页面中,那么我们需要自定义页面并且实现它的跳转
方法一
在 web.xml
文件中的 <web-app>
节点下配置:
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/errors/404.jsp</location>
</error-page>
方式二
编写一个通用处理器,将所有没有匹配到确定处理器的请求,全部跳转到指定的 404 页面
@RequestMapping("*")
public String test3(){
return "404";
}
方式三
重写 SpringMVC 的核心过滤器的 noHandlerFound 方法,实现自定义的 DispatcherServlet:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>com.exceptionpage.test</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
controller 类需要继承 DispatcherServlet,并重写 noHandlerFound 方法
@Override
protected void noHandlerFound(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("successful execute...");
response.sendRedirect(request.getContextPath() + "/notFound");
}
@RequestMapping("/notFound")
public String test2(){
System.out.println("successful...");
return "404";
}
若没有匹配上 url,则调用 noHandlerFound 方法,并且重定向到一个新的方法,新的方法中跳转到 404.jsp 页面。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论