使用UrlRewrite實現url僞靜態化

UrlRewrite

   A Java Web Filter for any compliant web application servers (such as Tomcat,JBossJetty 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的用法:

    1. 首先下載jar包。從官網http://tuckey.org/urlrewrite/上下載下來urlrewrite-3.2.0.jar(本人使用的版
本,但不是最新版本,建議使用最新版本)。然後把jar包放到你的web項目的WEB-INF/lib下面。
    2. 配置web.xml。 它的配置如下:
[html] view plain copy
  1. <filter>  
  2.     <filter-name>UrlRewriteFilter</filter-name>  
  3.     <filter-class>org.tuckey.web.filters.urlrewriter.UrlRewriteFilter</filter-class>  
  4.     <init-param>  
  5.         <param-name>logLevel</param-name>  
  6.         <param-value>WARN</param-value>  
  7.     </init-param>  
  8. </filter>  
  9. <filter-mapping>  
  10.     <filter-name>UrlRewriteFilter</filter-name>  
  11.     <url-pattern>/*</url-pattern>  
  12.     <dispatcher>REQUEST</dispatcher>  
  13.     <dispatcher>FORWARD</dispatcher>  
  14. </filter-mapping>  


    3. 在WEB-INF下面新建urlrewrite.xml(注意都是小寫)。其配置如下:
[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"  
  3. "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">  
  4. <urlrewrite>  
  5.     <rule>  
  6.         <from>^/(.*)$</from>  
  7.         <to type="redirect">/$1.jsp</to>  
  8.     </rule>  
  9.     <outbound-rule>  
  10.         <from></from>  
  11.         <to></to>  
  12.     </outbound-rule>  
  13. </urlrewrite>  

         rule結點中form的規則默認使用的是正則表達式來匹配的,當用戶訪問服務器時的URL會與該配置相比較,如果符合規則就會按照下面to結點中的配置對其進行跳轉,其默認是forward跳轉,具體配置可見官網文檔。

例如下面的配置:
[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"  
  3.         "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">  
  4. <urlrewrite>  
  5.     <rule>  
  6.         <from>^/page/(.*)$</from>  
  7.         <to type="redirect">/page/$1.action</to>  
  8.     </rule>  
  9. </urlrewrite>  
  10.    
  11. 這樣在瀏覽器中輸入此url:http://localhost:8080/page/test  
  12. 就相當於訪問:http://localhost:8080/page/test.jsp  
發佈了86 篇原創文章 · 獲贊 56 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章