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

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

有三种方法可以实现

方法一:最简单的实现,也是最快的

在<web-app>节点下配置

代码如下:

1 <error-page>
2     <error-code>404</error-code>
3     <location>/WEB-INF/errors/404.jsp</location>
4   </error-page>

若url匹配不到则会跳转到404.jsp页面

方法二:也很简单

1 @RequestMapping("*")
2     public String test3(){
3         return "404";
4     }

如果不能精确匹配上url,则返回404.jsp页面

方法三:重写noHandlerFound方法,实现自定义的DispatcherServlet

web.xml

 1 <servlet>
 2     <servlet-name>springmvc</servlet-name>
 3     <servlet-class>com.exceptionpage.test</servlet-class>
 4     <init-param>
 5       <param-name>contextConfigLocation</param-name>
 6       <param-value>classpath:spring-mvc.xml</param-value>
 7     </init-param>
 8   </servlet>
 9   <servlet-mapping>
10     <servlet-name>springmvc</servlet-name>
11     <url-pattern>/</url-pattern>
12   </servlet-mapping>

 

controller类需要继承DispatcherServlet,并重写noHandlerFound方法

 1 @Override
 2     protected void noHandlerFound(HttpServletRequest request,
 3                                   HttpServletResponse response) throws Exception {
 4         System.out.println("successful execute...");
 5         response.sendRedirect(request.getContextPath() + "/notFound");
 6     }
 7 
 8     @RequestMapping("/notFound")
 9     public String test2(){
10           System.out.println("successful...");
11           return "404";
12     }

若没有匹配上url,则调用noHandlerFound方法,并且重定向到一个新的方法

新的方法中跳转到404.jsp页面

<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>

转载于:https://www.cnblogs.com/Hdaydayup/p/6854030.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值