UrlRewrite
A Java Web Filter for any compliant web application servers (such as Tomcat,JBoss, Jetty or Resin),
which allows you to rewrite URLs before they get to your code. It is a very powerful tool just like Apache's mod_rewrite.
使用UrlRewrite有三大好處:
一:提高安全性,可以有效的避免一些參數名、ID等完全暴露在用戶面前,如果用戶隨便亂輸的話,不符合規則的
話直接會返回個404或錯誤頁面,這比直接返回500或一大堆服務器錯誤信息要好的多
二:美化URL,去除了那些比如*.do之類的後綴名、長長的參數串等,可以自己組織精簡更能反映訪問模塊內容的URL
三:更有利於搜索引擎的收入,通過對URL的一些優化,可以使搜索引擎更好的識別與收錄網站的信息
UrlRewrite的用法:
本,但不是最新版本,建議使用最新版本)。然後把jar包放到你的web項目的WEB-INF/lib下面。
2. 配置web.xml。 它的配置如下:
-
<filter>
-
<filter-name>UrlRewriteFilter</filter-name>
-
<filter-class>org.tuckey.web.filters.urlrewriter.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. 在WEB-INF下面新建urlrewrite.xml(注意都是小寫)。其配置如下:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
-
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
-
<urlrewrite>
-
<rule>
-
<from>^/(.*)$</from>
-
<to type="redirect">/$1.jsp</to>
-
</rule>
-
<outbound-rule>
-
<from></from>
-
<to></to>
-
</outbound-rule>
-
</urlrewrite>
rule結點中form的規則默認使用的是正則表達式來匹配的,當用戶訪問服務器時的URL會與該配置相比較,如果符合規則就會按照下面to結點中的配置對其進行跳轉,其默認是forward跳轉,具體配置可見官網文檔。
例如下面的配置:
-
<?xml version="1.0" encoding="utf-8"?>
-
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
-
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
-
<urlrewrite>
-
<rule>
-
<from>^/page/(.*)$</from>
-
<to type="redirect">/page/$1.action</to>
-
</rule>
-
</urlrewrite>
-
-
這樣在瀏覽器中輸入此url:http://localhost:8080/page/test
-
就相當於訪問:http://localhost:8080/page/test.jsp