這裏介紹下怎麼在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