一個web項目開始開發(fā)時就要想到網(wǎng)頁的url優(yōu)化,良好簡潔的url會對SEO非常友善,在公司一個項目中到了后期才進行url的優(yōu)化,可以說這是開發(fā)人員的失職,但是還是能夠更改的,我們經(jīng)常使用的springMVC框架就可以使用REST風格的url來對url進行一些優(yōu)化,struts也有相應的優(yōu)化美化url的插件,但是我們在項目中使用了url美化通用的方法,那就是urlrewrite(url重寫),這個插件既可以使用在springmvc框架中也可以使用在strust2的項目中,也可以使用在傳統(tǒng)的web項目中,為什么呢?
在springmvc中的rest風格只能使用在springmvc項目中,struts的插件只能使用在struts2的項目中,
兩種框架的核心都是攔截請求,springmvc是根據(jù)controller來發(fā)射請求,struts2使用使用action來轉發(fā)請求,他們都在項目中都配置了filter來攔截請求,來實現(xiàn)訪問的攔截,
在使用urlwrite的時候我們也會來配置filter攔截器,來攔截我們指定的請求,比如
我們在首頁中使用了/index來攔截, 只要攔截到該請求,我們就讓這個請求轉發(fā)到,我們只當?shù)穆窂?Client/Sinday_toIndex
還有第二種,就是帶有參數(shù)的請求,比如/HeightST?currentPage=1&type=1
這個時候我們就要urlrewrite.xml中配置相應的請求,例:
<rule>
<from>^/Height/([a-zA-Z]{1,})/ ([a-zA-Z]{1,}) $</from>
<to type=”forward”>/HeightST?currentPage=$2&type=$2</to>
</rule>
([a-zA-Z]{1,})是未知的參數(shù)必須配合小括號使用,第一個就是$1,第二個就是$2
匹配規(guī)則默認使用的是正則表達式,只有符合這個正則才能攔截到
to標簽中的type屬性規(guī)定了請求再次發(fā)送的類型,forward是轉發(fā),一般都是使用這個屬性,因為forward后的請求是不會顯示轉發(fā)url的,
要想在這個地方使用forward,必須在web.xml中配置forward的,
這個url重寫普遍都存在一個弊端,那就是如果頁面引用的樣式如果是../這樣的形勢的話,必然找不到央視建議 寫成根路徑,或者在head便簽里面添加,base子標簽,href指定為項目的根路徑
咨詢熱線
010-85377344
135-21581588
微信客服
QQ客服
3026106565 點擊咨詢