UrlRewrite就是我們通常說的地址重寫,用戶得到的全部都是經過處理后的URL地址。
urlrewrite顧名思義,就是對URL進行重寫,用戶得到的全部都是經過處理后的URL地址,這樣做我覺得好處有三:
一:提高安全性,可以有效的避免一些參數名、ID等完全暴露在用戶面前,如果用戶隨便亂輸的話,不符合規則的話直接會返回個404或錯誤頁面,這比直接返回500或一大堆服務器錯誤信息要好的多
二:美化URL,去除了那些比如*.do之類的后綴名、長長的參數串等,可以自己組織精簡更能反映訪問模塊內容的URL
三:更有利于搜索引擎的收入,通過對URL的一些優化,可以使搜索引擎更好的識別與收錄網站的信息
使用步驟
1下載jar
官方地址:http://tuckey.org/urlrewrite/
下載urlrewritefilter-4.0.3.jar,加入到工程lib目錄下。
2配置web.xml
1
2
3
4
5
6
7
8
9
10
|
< 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目錄下。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<? 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&type=show</ to > </ rule > </ urlrewrite > |
小結:
urlrewrite是個過慮器,它將會過慮用戶的所有請求,符合規則的便對其進行重定向。rule結點中from的規則默認使用的是正則表達式來匹配的,
當用戶訪問服務器時的URL會與該配置相比較,如果符合規則就會按照下面to結點中的配置對其進行跳轉,其默認是forward跳轉。
簡單分析一下上面的正則表達式“^/vweb/view/index-([0-9]+)”:“”匹配輸入字符串的開始位置“”匹配輸入字符串的結束位置
“\”轉義字符,表示后面的“-”不具有特殊含義,只是一個簡單的字符串。
“([0-9]+)”:
“[0-9]”:由0到9中任何數據組成的字符串
“+”匹配1或多個正好在它之前的那個字符。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/u013628152/article/details/50549065