偽靜態是相對真實靜態來講的,通常我們為了增強搜尋引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友為了實時的顯示一些資訊。或者還想運用動態指令碼解決一些問題。不能用靜態的方式來展示**內容。但是這就損失了對搜尋引擎的友好面。怎麼樣在兩者之間找個中間方法呢,這就產生了偽靜態技術。就是展示出來的是以html一類的靜態頁面形式,但其實是用jsp一類的動態指令碼來處理的。
需要伺服器的支援:不是所有的伺服器都支援偽靜態的
不過偽靜態不大量使用還是可以接受的
第二步:官網上說的很明白,在你的web.xml中新增以下的filter,過濾所有的請求
<filter
>
<
filter-name
>urlrewritefilter
filter-name
>
<
filter-class
>org.tuckey.web.filters.urlrewrite.urlrewritefilter
filter-class
>
filter
>
<
>
<
filter-name
>urlrewritefilter
filter-name
>
<
url-pattern
>/*
url-pattern
>
<
dispatcher
>request
dispatcher
>
<
dispatcher
>forward
dispatcher
>
<
dispatcher
>include
dispatcher
>
>
解釋一下這個filter中的一些標籤含義
首先可以了解一下
requestdispatcher
requestdispatcher提供兩個方法forward和include
都表示要跳轉到其他資源,不同的是,如果使用forward跳轉則後面的response輸出則不會執行,而用include來跳轉,則include的servlet執行完後,再返回到原來的servlet執行response的輸出(如果有)
元素
請求是以(/*)的,表示所有的起高球,並且是通過request dispatcher的forward方法傳遞過來或者直接從客戶端傳遞過來的,則必須經過這個過濾器。
所以需要加上那三個dispatcher很重要,可以避免一些不必要的錯誤
第三步:在你的web-inf目錄下建立乙個urlrewrite.xml的檔案 與web.xml同級,內容就是對請求過來的經行過濾,改變其字尾為html
<?xml version="1.0" encoding="utf-8"
?>
doctype urlrewrite public "- urlrewrite 2.6//en" ""
>
<
urlrewrite
>
<
rule
>
<
from
>/([a-za-z0-9]*).html
from
>
<
to type
="forward"
>$1.do
to>
rule
>
urlrewrite
>
有些地方說需要加上他的另一半,,我感覺有這乙個就夠 了 ,(.html)前面是正規表示式為了匹配你的請求位址
意思就是你在瀏覽器位址列上輸入的位址(.html )會經過這裡轉變為(.do)的形式去執行的你的action ,還有的你的請求位址也帶有的html也會轉變為do,例如你的網頁中的標籤裡的位址
偽靜態可以根據自己的需求更改其中的一些內容,以適用於你的專案中
struts2 5的小例子
我自己用的是struts 2.5.16 min lib.zip,解壓匯入jar。package com.bingcao.test import com.opensymphony.xwork2.actionsupport public class loginaction extends actions...
關於Struts2 5以上版本的配置問題
昨天參考了這位部落格的struts專案配置 但由於他用的是2.3,我是struts2.5所以其實是有點區別的。一定注意別掉了最後log4j這個包,否則執行不了。2.5版本的過濾器配置 其目的就是讓所有的請求都經過過濾器。strutsfilter name org.apache.struts2.dis...
struts2 5初步使用教程
1新建乙個動態web應用,預設帶web.xml 2.將struts需要的包新增到web inf lib目錄下,需要的包如圖所示 struts2 org.apache.struts2.dispatcher.filter.strutsprepareandexecutefilter struts2 4,在...