三思考,实现自己定义404页:Tomcat、SpringMVC精确匹配、重写DispatchServlet
<error-page>
<error-code>404</error-code>
<location>/error/404.htm</location>
</error-page>
@Controller
public class UrlNotFoundController {
@RequestMapping("*")
public String test404(){
//TODO
return "404Page";
}
}
@Controller("/home")
public class HomeController{
@RequestMapping("a")
	public String a(){
      //
	}
}
<servlet>
<servlet-name>theDispatcher</servlet-name>
<servlet-class>base.web.MyDispatchServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc-servlet.xml</param-value>
</init-param>
<init-param>
<param-name>fileNotFondUrl</param-name>
<param-value>/error/404</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>theDispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
public class MyDispatchServlet extends DispatcherServlet {
	private static final long serialVersionUID = 1L;
	private static final UrlPathHelper urlPathHelper = new UrlPathHelper();
	private String fileNotFondUrl = "/error/404.html";
	public void noHandlerFound(HttpServletRequest request, HttpServletResponse response) throws Exception {
		if (pageNotFoundLogger.isWarnEnabled()) {
			String requestUri = urlPathHelper.getRequestUri(request);
			pageNotFoundLogger.warn("No mapping found for HTTP request with URI [" + requestUri +
					"] in DispatcherServlet with name '" + getServletName() + "'");
		}
		response.sendRedirect(request.getContextPath() + fileNotFondUrl);
	}
	public String getFileNotFondUrl() {
		return fileNotFondUrl;
	}
	public void setFileNotFondUrl(String fileNotFondUrl) {
		this.fileNotFondUrl = fileNotFondUrl;
	}
}	
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
版权声明:本文博主原创文章。博客,未经同意不得转载。
三思考,实现自己定义404页:Tomcat、SpringMVC精确匹配、重写DispatchServlet的更多相关文章
- 三种思路实现自定义404页面:Tomcat、SpringMVC精准匹配、重写DispatchServlet
		
第1种方式:Tomcat直接处理 web.xml <error-page> <error-code>404</error-code> <location> ...
 - Apacheserver自己定义404页面的两种方法以及.htaccess的重要命令总结
		
Apacheserver自己定义404错误页面有两种方法: 第一种方法最简单,直接在Apache的httpd.conf下进行配置改动命令,改动的内容请參看.htaccess命令写法中的自己定义错误页面 ...
 - SharePoint 2013 设置自己定义布局页
		
在SharePoint中.我们常常须要自己定义登陆页面.错误页面.拒绝訪问等:不知道大家怎样操作,曾经自己常常在原来页面改或者跳转.事实上SharePoint为我们提供了PowerShell命令,来改 ...
 - ajax json 表格排序,分页,自己定义每页数量
		
ajax json 表格排序.分页,自己定义每页数量 点击表头能够排序.依照升序或者降序,另外支持多列排序 设置每页数量 演示 XML/HTML Code <table id='examp ...
 - 十六:SpringBoot-自定义启动页,项目打包和指定运行环境
		
SpringBoot-自定义启动页,项目打包和指定运行环境 1.自定义启动页 2.打包配置 2.1 打包pom配置 2.2 多环境配置 3.环境测试接口 4.打包执行 4.1 指定模块打包 4.2 运 ...
 - 创建一个People类型,有年龄、工资、性别三个属性。 定义一个方法叫做找对象,找对象方法传过来一个人;
		
创建一个People类型,有年龄.工资.性别三个属性. 定义一个方法叫做找对象,找对象方法传过来一个人: 首先如果性别相同,就输出"我不是同性恋", 如果对方是男的,年龄小于28, ...
 - Nginx反向代理+Tomcat+Springmvc获取用户访问ip
		
Nginx+Tomcat+Springmvc获取用户访问ip 1.Nginx反向代理 修改Nginx配置文件 location / { ***********之前代码*******; proxy_se ...
 - mysql innodb 数据打捞(三)innodb 簇不连接页的扫描提取(计划)
		
操作系统簇大小一般是4K,而innoDB的页大小一般是16K,那么就有可能16K的页没有存储在连续的簇中,这样扫描软件就不会扫描出来这样的页面.为了解决这个问题,决定给软件增加半页扫描功能. 在第一次 ...
 - eclipse 404以及tomcat failed to start错误
		
eclipse中的servlet项目有时会不编译,不编译可能就会出现404错误,因为在build path的输出目录并没有class文件,然而如果在输出目录引入之前编译的class文件,就可能出现cl ...
 
随机推荐
- HDU-2647拓扑排序
			
这道题不能用矩阵表示,因为1w*1w绝对超内存,分析数据,前一个a的钱要多于后一个b,所以我们要把b作为出度,a为入度,如果不明白这个地方,举例:b——>a——>c——>d ,b为8 ...
 - 超炫HTML5 SVG聊天框拖拽弹性摇摆动画特效
			
这是一款很有创意的HTML5 SVG聊天框拖拽弹性摇摆动画特效. 用户能够用鼠标点击或用手滑动聊天框上的指定区域,该区域会以很有弹性的弹簧效果拉开聊天用户列表.点击一个用户头像后.又以同样的弹性特效切 ...
 - 深入了解回调函数Java
			
打回来.我第一次看到Java编程思想,后来Observer模式也适用于一个回调函数的想法.但是,一直没有重视,在处于劣势的最终面试,越来越明白为什么那么多人说Java编程思想,这本书应该是一遍又一遍, ...
 - 玩转web之ajax(一)---使用表单的serialize()方法中文乱码解决
			
有时候我们需要使用ajax提交去提交form的值,这样就需要使用serialize()去获取form的值,但这样获取的值如果有中文,会乱码,原因和解决方法如下: 原因:.serialize()自动调用 ...
 - 【Java先进】Lock、通过使用线程池
			
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...
 - Google Maps Android API v2 (3)- 地图添加到Android应用程序
			
添加地图的基本步骤是: (一旦)按照以下步骤[入门] [开始],获得API,获取密钥所需的属性,并添加到您的Android清单. 添加一个碎片对象 要处理地图的活动.做到这一点最简单的方法是增加一个 ...
 - 选择排序java
			
先简述选择排序,然后上代码 进行选择排序就是将所有的元素扫描一遍,从中挑选(或者说是选择,这正是这个排序名字的由来)最小的一个元素,将这个最小的元素与最左边的元素交换位置 ,现在最左边的元素就是有序的 ...
 - 小米2S twrp 中文,支持双系统
			
更新日志: 更新日志: 汉化了要使用的功能 修改语言选择方式,修改为下拉方式 TDB(TrueDualBoot) 功能完美实现 **adb**功能,完美实现,无需特别操作(比CWM强大) 修改双系统切 ...
 - linux、hdfs、hive、hbase经常使用的命令
			
linux经常使用命令 pwd 查看当前工作文件夹的绝对路径 cat input.txt 查看input.txt文件的内容 ls 显示当前文件夹下全部的文件及子文件夹 rm recommender-d ...
 - BootstrapQ 包Bootstrap tree,dialog等待
			
官方网站:http://uikoo9.com/bootstrapQ why 事实上bootstrap已经非常好了,唯一的软肋就是js方面有些薄弱,对照easyui就知道了. 能够非常明显的知道boot ...