本文轉載自:https://blog.csdn.net/qq_37268511/article/details/103486142
有時候我們並不想跳轉到系統自定義的錯誤頁面中,那么我們需要自定義頁面並且實現它的跳轉
有三種方法可以實現
方法一:最簡單的實現,也是最快的
在web.xml下配置如下:
<error-page> <error-code>404</error-code> <location>/WEB-INF/errors/404.jsp</location> </error-page>
若url匹配不到則會跳轉到404.jsp頁面
方法二:也很簡單
@RequestMapping("*") public String test3(){ return "404"; }
如果不能精確匹配上url,則返回404.jsp頁面
方法三:重寫noHandlerFound方法,實現自定義的DispatcherServlet
web.xml:
<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頁面