博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven 中配置 Urlrewrite 基本配置
阅读量:6276 次
发布时间:2019-06-22

本文共 2883 字,大约阅读时间需要 9 分钟。

1. 在maven项目的pom.xml文件里加入:

            <!-- URL Rewrite -->
    <dependency>
      <groupId>org.tuckey</groupId>
      <artifactId>urlrewritefilter</artifactId>
      <version>3.1.0</version>
    </dependency>

3.在WEB项目的web.xml里加上urlrewrite的过滤器
     <filter>
            <filter-name>UrlRewriteFilter</filter-name>
            <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
            <init-param>

      <!-- 设置自动更新urlrewrite.xml信息 -->

                  <param-name>confReloadCheckInterval</param-name>
                  <param-value>60</param-value>
            </init-param>
      </filter>
      <filter-mapping>
            <filter-name>UrlRewriteFilter</filter-name>
            <url-pattern>/*</url-pattern>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>INCLUDE</dispatcher>
      </filter-mapping>

2. 在Web项目下WEB-INF目录里新建一个名为urlrewrite.xml的文件,标签格式如下:
 

重写index.jsp成index.html
example:/index.html
/index.html
/index.jsp
将view根目录下所有jsp资源重写成/xxx.action
example:/index.action
/([A-Za-z0-9]+).action
/view/$1.jsp
forward(转发模式)传参
example:/user/param/fancy/8080.do
/user/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).do
/view/parameter/$1.jsp?username=$2&password=$3
redirect(重定向模式)传参,to中写绝对地址
example:/admin/param/fancy/8080.do
/admin/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+).do
/urlrewrite-maven-example/view/parameter/$1.jsp?username=$2&password=$3

 

urlrewrite.xml 这个配置文件一定只能放在 WEB-INF 下,放别的地方,无论你在web.xml中怎么配置都是不行的,至少现在是不行的。

所谓重写,就一定会有规则的匹配,这里用到了正则表达式,方便起见,我只用了[A-Za-z0-9]+,简单的解释一下:

A-Z:匹配 A 到 Z 中的任意一个字符,说一句废话,同理可得,

a-z:匹配 a 到 z 中的任意一个字符

0-9:匹配 0 到 9 的任意一个字符

+:至少出现一次,即,一次或一次以上

合起来 [A-Za-z0-9]+ 的意思就是:匹配一个任意的英文字母和数字组合的字符串

<rule>:自定义匹配规则

<note>:注释,解释标签

<from>:定义具体的匹配规则

<to>:匹配成功后的目标地址

<to type="">:type的值有两个,一个是 forward (转发,参数不丢失),一个是 redirect (重定向,地址栏显示的地址就是目标真实地址)

$1:匹配中的第一个正则表达式的字符串的值,$2,$3,$4....也是如此

&amp; :是 & 的实体名,代表的就是 &,这个可以在 w3school 中找到:

第一个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:跟第三个其实是一样的,但是由于是重定向模式,所以地址栏就会显示真的是地址

在 pom.xml 中右键,Run as --> Maven install

下面是生成的 target 资源:

将 war 文件拷贝到你的 服务器中,我用的是tomcat,然后启动tomcat:

如果你是第一次使用 urlrewrite 可能会抛一个异常:

这个异常信息是说系统找不到 tomcat bin 下的 urlrewrite3.2.dtd 文件,解决办法很简单:

方法一:将 urlrewrite3.2.dtd 放到 urlrewrite.xml 所在的目录下,即 WEB-INFO 的目录下

方法二:将 urlrewrite3.2.dtd 放到 tomcat 的 bin 目录下,这个方法一劳永逸,所以我选的是这个

urlrewrite3.2.dtd 这个文件可以在文章的最下面下载,源码包里我没有放这个文件,没问题之后,

 

转载地址:http://mlrpa.baihongyu.com/

你可能感兴趣的文章
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
《分歧者3》观后感
查看>>
GIS基础软件及操作(九)
查看>>
10天学安卓-第一天
查看>>
view和activity的区别(转)
查看>>
MySQL的create table as 与 like区别(转)
查看>>
SQLserver 存储过程执行错误记录到表
查看>>
Spring Boot 之 RESRful API 权限控制
查看>>
Redis——常用命令操作
查看>>
UDP 单播、广播和多播
查看>>
windows linux—unix 跨平台通信集成控制系统----系统硬件信息获取
查看>>
ThinkPad E550 安装 WIN7 的启动 U 盘制作
查看>>
在 Windows 下远程桌面连接 Linux - XManager 篇
查看>>
tomcat如何路由映射网址
查看>>
如何开始容器化
查看>>
为什么POLARDB是云计算2.0时代产品进化的关键里程碑?
查看>>
HTTP 协议解析
查看>>
十面埋伏? 程序世界里的不信任原则
查看>>
Use our script to build OGRE, CEGUI, FreeImage, Cg and OIS from CVS
查看>>
姚期智:算法将推动下一波AI浪潮,现有革新将达极限
查看>>