在做一个项目的时候,为了界面美观及用户体验,我们往往会设计自己的错误跳转页面,而不是直接展示给用户一堆错误码,为此我们需要配置自己的错误跳转页面。

1、项目结构

  

2、web.xml

  

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4.  
  5. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xmlns="http://java.sun.com/xml/ns/javaee"
  7. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  8. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  9. version="3.0">
  10. <display-name>Archetype Created Web Application</display-name>
  11.  
  12. <servlet>
  13. <servlet-name>dispatcher</servlet-name>
  14. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  15. <load-on-startup>1</load-on-startup>
  16. </servlet>
  17. <!-- 设置dispatchservlet的匹配模式,通过把dispatchservlet映射到/,默认servlet会处理所有的请求,包括静态资源 -->
  18. <servlet-mapping>
  19. <servlet-name>dispatcher</servlet-name>
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22.  
  23. <!-- 字符集过滤器 -->
  24. <filter>
  25. <filter-name>encodingFilter</filter-name>
  26. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  27. <init-param>
  28. <param-name>encoding</param-name>
  29. <param-value>UTF-8</param-value>
  30. </init-param>
  31. <init-param>
  32. <param-name>forceEncoding</param-name>
  33. <param-value>true</param-value>
  34. </init-param>
  35. </filter>
  36. <filter-mapping>
  37. <filter-name>encodingFilter</filter-name>
  38. <url-pattern>/*</url-pattern>
  39. </filter-mapping>
  40.  
  41. <!--错误跳转页面-->
  42. <error-page>
  43. <exception-type>java.lang.Throwable</exception-type>
  44. <location>/WEB-INF/views/error/404.jsp</location>
  45. </error-page>
  46. <error-page>
  47. <error-code>404</error-code>
  48. <location>/WEB-INF/views/error/404.jsp</location>
  49. </error-page>
  50. <error-page>
  51. <error-code>500</error-code>
  52. <location>/WEB-INF/views/error/500.jsp</location>
  53. </error-page>
  54. </web-app>

注:其实只是在原有的springmvc配置的基础上增加<error-page>标签项即可。

3、dispatcher-servlet.xml

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:p="http://www.springframework.org/schema/p"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context.xsd"
  13. default-lazy-init="true">
  14.  
  15. <!-- 通过mvc:resources设置静态资源,这样servlet就会处理这些静态资源,而不通过控制器 -->
  16. <!-- 设置不过滤内容,比如:css,jquery,img 等资源文件 -->
  17. <mvc:resources location="/*.html" mapping="/**.html" />
  18. <mvc:resources location="/css/*" mapping="/css/**" />
  19. <mvc:resources location="/js/*" mapping="/js/**" />
  20. <mvc:resources location="/images/*" mapping="/images/**" />
  21.  
  22. <!-- 添加注解驱动 -->
  23. <mvc:annotation-driven />
  24. <!-- 默认扫描的包路径 -->
  25. <context:component-scan base-package="com.*" />
  26.  
  27. <!-- mvc:view-controller可以在不需要Controller处理request的情况,转向到设置的View -->
  28. <!-- 像下面这样设置,如果请求为/,则不通过controller,而直接解析为/index.jsp -->
  29. <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  30. <property name="viewClass"
  31. value="org.springframework.web.servlet.view.JstlView" />
  32. <property name="prefix" value="/WEB-INF/views/" />
  33. <property name="suffix" value=".jsp" />
  34. </bean>
  35.  
  36. <!-- 日志自定义注解拦截器 -->
  37. <mvc:interceptors>
  38. <mvc:interceptor>
  39. <mvc:mapping path="/**"/>
  40. <bean class="com.log.SystemLogAspect"></bean>
  41. </mvc:interceptor>
  42. </mvc:interceptors>
  43.  
  44. </beans>

4、TestController.java

  1. package com.controller;
  2.  
  3. import com.log.Log;
  4. import com.remote.RemoteDemo;
  5. import net.sf.json.JSONObject;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8.  
  9. /**
  10. * Created by sunjf on 2016/6/26.
  11. */
  12. @Controller
  13. public class TestController {
  14.  
  15. @Log(desc = "log测试")
  16. @RequestMapping(value = "test1")
  17. public String test1(){
  18. JSONObject jsonObject = new JSONObject();
  19. jsonObject.put("username", "sun");
  20. jsonObject.put("password", "123");
  21. // String result = RemoteDemo.remoteJsonRequest("http://localhost:8080/test2?username=sun&password=123", 5000, jsonObject);
  22. //System.out.println(result);
  23. return "error/success1";
  24. }
  25.  
  26. }

注:该方法跳转页面为success1.jsp,从项目结构中可以看出,我们的项目中是没有这个页面的

5、index.jsp 

  1. <html>
  2. <body>
  3. <h2>Hello World!</h2>
  4. <form action="test1" method="post" id="form1">
  5. <input type="submit" name="submit" value="button">
  6. </form>
  7. </body>
  8. </html>

6、404.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>404</title>
  5. </head>
  6. <body>
  7. <h1 align="center" style="margin-top:100px;font-size: 200px">404</h1>
  8. <h3 align="center">未能找到您访问的资源。</h3>
  9. </body>
  10. </html>

7、运行结果

  访问链接

  

  访问结果

  

springmvc之默认错误页面跳转的更多相关文章

  1. SpringMVC 04: SpringMVC中4种页面跳转方式

    转发和重定向的页面跳转方式 页面跳转方式,本质上只有2种方式:转发 + 重定向 但在SpringMVC的具体实现上,转发可以细分为:普通的页面转发 + 经由action方法的页面转发 重定向可以细分为 ...

  2. springMVC源码分析--页面跳转RedirectView(三)

    之前两篇博客springMVC源码分析--视图View(一)和springMVC源码分析--视图AbstractView和InternalResourceView(二)中我们已经简单的介绍了View相 ...

  3. Nginx 自定义404、500错误页面跳转

    自定义Nginx错误界面跳转 1.开启Nginx.conf配置文件下的自定义接口参数. http { fastcgi_intercept_errors on; } 2.在Server区域添加自定义的错 ...

  4. error.jsp错误页面跳转,统一异常处理

    常见web项目中会用倒计时然后跳转页面来处理异常 error.jsp关键代码: <script language="javascript" type="text/j ...

  5. Springboot - 自定义错误页面

    Springboot 没找到页面或内部错误时,会访问默认错误页面.这节我们来自定义错误页面. 自定义错误页面 1.在resources 目录下面再建一个 resources 文件夹,里面建一个 err ...

  6. Spring Boot:自定义 Whitelabel 错误页面

    一.概述在本文中,我们将研究如何禁用和自定义 Spring Boot 应用程序的默认错误页面,因为正确的错误处理描述了专业性和质量工作. 2.禁用白标错误页面 首先,让我们看看如何通过将server. ...

  7. springmvc使用路径变量后再进行页面跳转会出现路径错误问题

    学习<Servlet.JSP和SpringMVC学习指南>遇到的一个问题,记录下. 项目代码 现象 @RequestMapping(value = "/book_edit/{id ...

  8. SpringMVC中遇到页面跳转出现404错误的问题

    今天遇到了一个问题: 使用SpringMVC时,出现页面无法跳转的情况(404错误), 出现这个异常的原因在于SpringMVC的配置文件中控制器的配置书写错误: 原代码: <context:c ...

  9. SpringBoot图文教程15—项目异常怎么办?「跳转404错误页面」「全局异常捕获」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1-Spr ...

随机推荐

  1. vc++ 中 IntelliSense: 无法打开 源 文件 "xxx.h"

    类似无法找到文件的问题都可以用这个方法解决,就是路径的问题.vc++2008的项目转到vc++2010也可能出现类似的问题. 解决方法: 在  项目属性=>配置属性=>C/C++  =&g ...

  2. JavaWeb学习总结-09 JDBC 学习和使用

    一 JDBC相关概念介绍 1.1 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  3. python从Microsoft Excel文件中导入数据

    excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. ...

  4. 获取List集合中最大值的方法

    public static void main(String args[])      {        //Double[] num = { 45.1,45.2 };              Li ...

  5. char *p = "abcdefg"; p[0] = p[1]出错

    参考:http://blog.sina.com.cn/s/blog_5c0172280100ut4o.html 1.char *s="abc"; 看这个赋值: 右边,是" ...

  6. 理解Linux系统/etc/init.d目录和/etc/rc.local脚本

       一.关于/etc/init.d 如果你使用过Linux系统,那么你一定听说过init.d目录.这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重 ...

  7. ./yy.sh -d bash 执行脚本时所加的参数

    -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L fil ...

  8. scrapy3_ 安装指南

    安装指南 安装Scrapy 注解 请先阅读 平台安装指南. 下列的安装步骤假定您已经安装好下列程序: Python 2.7 Python Package: pip and setuptools. 现在 ...

  9. VM安装linux

      看图简单流程即可.注意磁盘空间至少30G,实用oracle数据库时需要更大,可以后期增加.   静待安装完成即可.一定记得创建的用户名及密码,及root用户的密码.

  10. 一台机子上运行使用不同Java版本的多个tomcat

    方法 在tomcat/bin/下创建setenv.sh并写入 export JAVA_HOME=/usr/share/jvm/jdk1..0_91 When you starting tomcat u ...