项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写
简单记录一下UrlRewrite实现地址重写功能。
1、pom.xml
在pom.xml增加配置UrlRewrite jar
<!-- URL Rewrite -->
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.4</version>
</dependency>
2、web.xml
在web.xml文件中配置UrlRewriteFilter,这里可能要注意filter的加载顺序。
<!-- 开启URLREWRITE监听 -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
3、urlrewrite.xml
urlrewrite.xml 这个配置文件目前只能放在 WEB-INF 下。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN" "\\urlrewrite3.2.dtd"> <urlrewrite> <rule>
<note>重写index.jsp成index.html</note>
<note>example:/index.html</note>
<from>/index.html</from>
<to type="forward">/index.jsp</to>
</rule> <rule>
<note>将view根目录下所有jsp资源重写成/xxx.action</note>
<note>example:/index.action</note>
<from>/([A-Za-z0-9]+).action</from>
<to type="forward">/view/$1.jsp</to>
</rule> <rule>
<note>forward(转发模式)传参</note>
<note>example:/user/param/fancy/8080.do</note>
<from>/user/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).do</from>
<to type="forward">/view/parameter/$1.jsp?username=$2&password=$3</to>
</rule> <rule>
<note>redirect(重定向模式)传参,to中写绝对地址</note>
<note>example:/admin/param/fancy/8080.do</note>
<from>/admin/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).do</from>
<to type="redirect">/urlrewrite-maven-example/view/parameter/$1.jsp?username=$2&password=$3</to>
</rule> </urlrewrite>
4、注释
第一个rule:访问 /index.html,实际上是访问了 /index.jsp
第二个rule:访问 /xx.action , 实际上是访问了 view 目录下的 xx.jsp
第三个rule:访问 /user/xx/yy/zz.do , 实际上是访问了 view 目录下的 parameter 目录下的 xx.jsp?username=yy&password=zz
第四个rule:跟第三个其实是一样的,但是由于是重定向模式,所以地址栏就会显示真的是地址
<rule>:自定义匹配规则
<note>:注释,解释标签
<from>:定义具体的匹配规则
<to>:匹配成功后的目标地址
<to type="">:type的值有两个,一个是 forward (转发,参数不丢失),一个是 redirect (重定向,地址栏显示的地址就是目标真实地址)
$1:匹配中的第一个正则表达式的字符串的值,$2,$3,$4....也是如此
& 是 & 的实体名,代表的就是 &
项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写的更多相关文章
- Java web项目搭建系列之二 Jetty下运行项目
在项目pom.xml文件中添加Jetty运行配置 在pom.xml文件project节点下插入如下代码: <build> <plugins> <plugin> &l ...
- 项目搭建系列之二:SpringMVC框架下配置MyBatis
1.什么是MyBatis? MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis ...
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- 使用Javamelody验证struts-spring框架与springMVC框架下action的訪问效率
在前文中我提到了关于为何要使用springMVC的问题,当中一点是使用springMVC比起原先的struts+spring框架在效率上是有优势的.为了验证这个问题,我做了两个Demo来验证究竟是不是 ...
- springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据
- springmvc框架下ajax请求传参数中文乱码解决
springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...
- (转)springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据 json作为一种轻量级的数据交换格式,在前后台数据交换中占据着非常重要的地位.Json的语法非常简单,采用的是键值对表示形式.JSON 可以 ...
- 项目搭建系列之一:使用Maven搭建SpringMVC项目
约定电脑都安装了eclipse,且已配置好Maven以及eclipse插件. 1.Eclipse 2.maven 3.Eclipse 需要安装maven插件.url:maven - http://do ...
- 用Maven搭建简单的SpringMVC框架
本文会详细阐述如何用Maven搭建一个简单的SpringMVC框架 这里就不介绍SpringMVC框架了,咱们直接来搭建 第一步 创建一个Maven的web项目 这里有一个简单的方法 new一个Ma ...
随机推荐
- iOS 查看代码总行数
1.打开终端 2.cd 拖入工程 回车 3.输入命令 find . "(" -name "*.m" -or -name "*.mm" -or ...
- Xcode面板的使用
1.调出打包输出管理界面Xcode->Window->Organizer
- Kubernetes -- Server 部署
1. Node 节点配置文件 1.1 下载相关的软件 wget https://dl.k8s.io/v1.13.1/kubernetes-server-linux-amd64.tar.gz wget ...
- 线性可分SVM完全推导过程
- networkX如何读取存储图的二进制.dat文件
一般情况下,.dat文件存储的是图的二进制邻接矩阵. import networkx as nx G = nx.readadjlist('auth_graph.dat')
- 190411Python面向对象编程
一.面向对象的概念 类:把一类事物的相同特征抽取出来整合到一起就是一个类,类是一个抽象的概念 对象:基于类创建的一个具体的事物 class People(object): '这是一个人类的类' def ...
- 条目十五《注意strng实现的多样性》
条目十五<注意strng实现的多样性> 下面以一个打印string空对象的大小切入本条目: #include #include using namespace std; int main( ...
- 在DZ 中 showmessage 中可以再次执行 JS
showmessage ( '登录', '', array (), array ( 'showdialog' => 0, ...
- win10进入安全模式的方法
https://jingyan.baidu.com/article/a3aad71ac5919bb1fa009667.html
- Qt 学习之路 2(54):剪贴板
Qt 学习之路 2(54):剪贴板 豆子 2013年6月8日 Qt 学习之路 2 2条评论 剪贴板的操作经常和前面所说的拖放技术在一起使用.大家对剪贴板都很熟悉.我们可以简单地把它理解成一个数据存储池 ...