Struts2進行url重寫

2022-05-20 02:15:03 字數 1367 閱讀 5766

一般來說我們在用struts2進行開發的時候我們的訪問url都是帶上一些類似於.action或者.do還有用?傳遞引數,這種訪問方式與靜態頁面的訪問相比,我就可以用

一些開源的元件來進行url的重寫,以實現偽靜態,雖然這樣對於訪問速度並沒有提高,但是有乙個很明確的好處就是經過url重寫的url是更有利於搜尋引擎優化的,還有乙個好處就是完全隱藏了一些action的結構,下面就讓我們來看看怎麼進行url的重寫

forward

include

(1)普通url靜態化

例如:要把http://localhost/prjtest/user/list.jsp轉換成http://localhost/prjtest/user/list.html

這種是最簡單的,當乙個servlet跳轉到list.jsp頁面列出user列表時,在urlrewrite.xml中這樣配置:

1 2 ^/user/list.html

3 /user/list.jsp

4 當請求/user/list.html這個頁面時,實際上相當於請求/user/list.jsp頁面

在servlet的跳轉要這樣寫:

response.sendredirect("./user/list.html");

(2)帶引數的url靜態化

例如:要把http://localhost/prjtest/user/view.jsp?cid=1&cname=admin轉換成

在urlrewrite.xml中這樣配置:

4 當請求/user/view/1_admin.html這個頁面時,實際上相當於請求/user/list.jsp?cid=1&cname=admin頁面,在servlet的跳轉要這樣寫(cid,cname為變數):

注意:配置檔案中用"&"來代替"&"。

乙個通用的正規表示式:[a-za-z0-9]+

1.4 小結

使用urlrewirte可以方便的進行位址偽靜態化,配置規則也相對比較方便。不過在專案設計的時候需要制定位址匹配規則,以使在開發的過程中直接利用該規則進行編碼。如果是對已有的專案進行位址偽靜態化比較麻煩,需要對所有的頁面、跳轉進行修改,工作量較大,同時也容易忽略一些url。

一句話,其實它並沒有達到靜態化要求,只是相當於將位址進行了改寫。

經過上面的一些步驟我們基本就實現了在struts2中進行url的重寫!

Struts2自定義標籤重寫

struts2自定義標籤類重寫主要就是重寫dostarttag 和doendtag 方法。tagsupport的學習 1 tagsupport與bodytagsupport的區別 tagsupport與bodytagsupport的區別主要是標籤處理類是否需要與標籤體互動,如果不需要互動的就用tag...

Struts2字尾 深入Struts2

一 將action字尾變成html字尾 xmlversion 1.0 encoding utf 8 doctype struts public apache software foundation dtd struts configuration 2.1 en struts include file...

Struts2標籤 資料標籤 url標籤

url標籤用於生成乙個url位址,可以通過為url標籤指定param子元素,從而向指定url傳送請求引數。該標籤有以下的屬性 includeparams 可選屬性,指定是否包含請求引數,屬性值只能為 none get all scheme 可選屬性,用於設定scheme屬性 namespace 可選...