SpringMVC 跳转到自定义 404 页面的三种方法

发布于 2024-05-04 17:56:47 字数 1758 浏览 10 评论 0

有时候我们并不想跳转到系统自定义的错误页面中,那么我们需要自定义页面并且实现它的跳转

方法一

​在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

蓝梦月影

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

内心激荡

文章 0 评论 0

JSmiles

文章 0 评论 0

左秋

文章 0 评论 0

迪街小绵羊

文章 0 评论 0

瞳孔里扚悲伤

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文