UrlRewrite重寫url


UrlRewrite就是我們通常說的地址重寫,用戶得到的全部都是經過處理后的URL地址。

優點

(1)提高安全性 
可以有效的避免一些參數名、ID等完全暴露在用戶面前,如果用戶隨便亂輸的話,不符合規則的話直接會返回個404或錯誤頁面,

這比直接返回500或一大堆服務器錯誤信息要好的多。 
(2)美化URL 
去除了那些比如*.do之類的后綴名、長長的參數串等,可以自己組織精簡更能反映訪問模塊內容的URL 
(3)利於搜索引擎的收入 
通過對URL的一些優化,可以使搜索引擎更好的識別與收錄網站的信息

使用步驟

1下載jar

官方地址:http://tuckey.org/urlrewrite/ 
下載urlrewritefilter-4.0.3.jar,加入到工程lib目錄下。

2配置web.xml

<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>

3 配置urlrewrite.xml

添加urlrewrite.xml 到工程的WEB-INF目錄下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
       "http://tuckey.org/res/dtds/urlrewrite3.1.dtd">
<urlrewrite>
     <rule>
       <note>
           The rule means that requests to /test/status/ will be redirected to /rewrite-status
           the url will be rewritten.
       </note>
       <from>^/vweb/view/index\-([0-9]+)$</from>
       <to>/vweb/view/index.shtml?_vwebid=$1&amp;type=show</to>
   </rule>
</urlrewrite>

urlrewrite是個過慮器,它將會過慮用戶的所有請求,符合規則的便對其進行重定向。

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


簡單分析一下上面的正則表達式“^/vweb/view/index\-([0-9]+)$

“^

“$”匹配輸入字符串的結束位置 

“\”轉義字符,表示后面的“-”不具有特殊含義,只是一個簡單的字符串。 

“([0-9]+)”: 

“[0-9]”:由0到9中任何數據組成的字符串 
“+”匹配1或多個正好在它之前的那個字符

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM