这里介绍下怎么在java web项目中增长urlRewrite 过滤器,来实现地址重写:java
在你的项目WEB-INF/lib 中增长UrlRewrite的jar包,下载地址: urlrewritefilter-4.0.3.jar 或者web
使用maven 的方式:app
<dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.3</version> </dependency>
2.在WEB-INF/web.xml 文件中加入:maven
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
注意:加入过滤器后,须要在struts的过滤器中增长一下代码,要否则配置好了,你会发现一直出现404错误。svn
<filter> <filter-name>struts</filter-name> <filter-class>com.xx.web.struts.MyStrutsFilter</filter-class> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping>
3.在WEB-INF 中增长urlrewrite.xml 文件。google
4.重启服务就ok了。url
注意:在重写一个可能会传多个参数的地址时须要这样写:spa
<rule> <note>过滤查找商家的地址并分页</note> <from>^/ouralliances/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)(\/?)$</from> <to>/web/WebAction_ourAlliance?rid=$1&cid=$2&aid=$3&pageNum=$4</to> </rule>
这里的链接符是:"&",而不是"&"
code