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