国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Struts框架的偽靜態(tài)技術(shù)實現(xiàn)

2012-04-29 00:44:03包烏格德勒李娟
中國高新技術(shù)企業(yè) 2012年4期

包烏格德勒 李娟

摘要:靜態(tài)網(wǎng)頁技術(shù)和動態(tài)網(wǎng)頁技術(shù)都有各自的優(yōu)缺點,隨著互聯(lián)網(wǎng)的不斷發(fā)展,結(jié)合它們優(yōu)點的偽靜態(tài)技術(shù)應(yīng)運而生。文章通過介紹Struts框架的運行原理,研究了基于Struts框架的偽靜態(tài)技術(shù),并給出了基于Struts框架實現(xiàn)偽靜態(tài)技術(shù)的方法。

關(guān)鍵詞:偽靜態(tài); Struts; Action Servlet; Action

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-2374(2012)06-0118-02

早期的網(wǎng)站都采用靜態(tài)網(wǎng)頁技術(shù),網(wǎng)頁的內(nèi)容更新都是由人工編輯修改的,浪費很多人力資源。靜態(tài)頁面的URL大多以.htm和.html結(jié)尾。隨著互聯(lián)網(wǎng)信息量的不斷壯大,網(wǎng)站開發(fā)人員為了減輕網(wǎng)站服務(wù)器的負(fù)荷和提高網(wǎng)站安全性,各網(wǎng)站都不約而同地采用了動態(tài)網(wǎng)頁技術(shù)。動態(tài)頁面一般指服務(wù)器端腳本程序與HTML文件相混合的頁面,它可以訪問數(shù)據(jù)庫中的內(nèi)容,動態(tài)頁面的內(nèi)容隨著數(shù)據(jù)庫內(nèi)容的變化而自動改變,不需要人工編輯修改。當(dāng)用戶訪問動態(tài)網(wǎng)頁時,Web服務(wù)器會根據(jù)用戶所訪問頁面的URL,執(zhí)行相應(yīng)頁面的程序代碼,把程序執(zhí)行結(jié)果轉(zhuǎn)換成靜態(tài)頁面反饋給用戶。比較常用的動態(tài)網(wǎng)頁技術(shù)有:ASP、ASP.NET、JSP、PHP等。

動態(tài)網(wǎng)頁技術(shù)有提高網(wǎng)站開發(fā)速度、占用空間少等優(yōu)點,但是它的資源占用比靜態(tài)網(wǎng)頁高,而且對搜索引擎不友好。靜態(tài)網(wǎng)頁雖然占用空間大,但是它的訪問速度更快,資源占用更少,特別是對搜索引擎友好,更容易被搜索引擎收錄。鑒于靜態(tài)和動態(tài)網(wǎng)頁技術(shù)的優(yōu)點和缺點,又出現(xiàn)了偽靜態(tài)技術(shù),它是在保留動態(tài)網(wǎng)頁優(yōu)點的基礎(chǔ)上,使頁面URL靜態(tài)化,即使用靜態(tài)URL來訪問動態(tài)網(wǎng)頁,使URL不帶動態(tài)參數(shù)(沒有問號),騙過收錄的爬蟲程序。本文研究基于Struts框架實現(xiàn)偽靜態(tài)技術(shù)的方法。

一、Struts框架

JSP是Java Web應(yīng)用開發(fā)的核心技術(shù),與Struts框架結(jié)合在一起,可以快速高效地開發(fā)出Java Web應(yīng)用程序。Struts通過ActionServlet實現(xiàn)Model2架構(gòu),是Struts框架的核心,是中央控制器,所有的用戶請求都先由ActionServlet來處理,然后由ActionServlet把請求轉(zhuǎn)發(fā)給Struts的一個Action。Struts框架只允許在一個Web應(yīng)用中配置一個ActionServlet類,在應(yīng)用的生命周期內(nèi),僅創(chuàng)建ActionServlet類的一個實例,該實例負(fù)責(zé)用戶的所有請求。

ActionServlet在web.xml(Web應(yīng)用配置文件)中的配置如下:

action

org.apache.struts.action.ActionServlet

config

/WEB-INF/struts-config.xml

action

*.do

一般情況下,ActionServlet只負(fù)責(zé)處理所有以.do結(jié)尾的URL,所以配置為*.do。

二、基于Struts框架實現(xiàn)偽靜態(tài)技術(shù)

(一)Struts實現(xiàn)偽靜態(tài)的兩種配置方法

靜態(tài)網(wǎng)頁一般以.html結(jié)尾,而ActionServlet卻只會處理以.do結(jié)尾的請求,所以想要通過Struts框架實現(xiàn)偽靜態(tài)技術(shù),就必須配置ActionServlet也可以處理.html結(jié)尾的請求。其實在Web應(yīng)用中配置Struts時,可以讓Struts同時處理多種形式的URL,通過在web.xml添加多個元素來

實現(xiàn)。

偽靜態(tài)技術(shù)可以通過兩種形式的配置方法來實現(xiàn):一個是以擴(kuò)展名形式,另一個是以路徑形式。

1.?dāng)U展名形式。

能夠同時處理.html和.do結(jié)尾請求的ActionServlet的配置如下:

action

*.html

action

*.do

元素中配置了要處理的偽靜態(tài)頁面的擴(kuò)展名“.html”,配置成功后ActionServlet就可以處理.html結(jié)尾的URL,此時用戶實際訪問的并不是靜態(tài)網(wǎng)頁,而是Struts的ActionServlet和Action運行的結(jié)果。

2.路徑形式。

可以在元素中設(shè)置一個以/開始的URL,如/public/*,表示以public開始的所有URL都由Struts來處理,此時的URL可以由任何擴(kuò)展名來結(jié)尾,包括.htm、.html等靜態(tài)URL。配置如下所示:

action

/public/*

action

*.do

元素中配置了要處理的偽靜態(tài)頁面的路徑“/public/*”。

(二)在Struts中配置偽靜態(tài)URL的Action映射

當(dāng)Struts處理用戶請求時,會把請求轉(zhuǎn)發(fā)給一個Action類,在Struts的配置文件struts-config.xml中需要設(shè)置用戶請求路徑和Action的映射關(guān)系,需要為偽靜態(tài)URL映射一個Action類。不同形式的偽靜態(tài)配置方法,將會有不同的結(jié)果。

如果以擴(kuò)展名*.html形式配置了偽靜態(tài),在struts-config.xml中映射如下的Action:

此時HTMLAction類可處理用戶請求路徑為abc.html和abc.do的請求。

如果以路徑/public/*形式配置了偽靜態(tài),在struts-config.xml中映射如下的Action:

此時HTMLAction類可處理用戶請求路徑如/public/任意字符串.html的請求,但是在路徑“/public/”后不能再出現(xiàn)/字符,即只能處理public直接路徑中的用戶請求,不能處理public的子路徑中的用戶請求。

如果想要處理public的所有路徑中的請求,包括子路徑,就必須配置如下的Action映射:

此時HTMLAction類可處理用戶請求路徑如/public/任意字符串.html的請求,但是與上面不同的是,可以處理public的子路徑中的用戶請求,即可以處理以public開始的任意請求路徑。推薦使用本方法實現(xiàn)偽靜態(tài)技術(shù)。

三、結(jié)語

本文分析了通過Struts框架實現(xiàn)偽靜態(tài)技術(shù)的方法,介紹了兩種形式的配置方法??梢园l(fā)現(xiàn),以路徑形式配置偽靜態(tài),且設(shè)置Action的path為“/**.html”,可以簡化偽靜態(tài)的配置,具有很好的應(yīng)

用性。

參考文獻(xiàn)

[1]周志堅.動態(tài)網(wǎng)頁靜態(tài)化的實現(xiàn)[J].無錫商業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2007,7(3).

[2]劉斌.精通Java Web整合開發(fā):JSP+AJAX+Struts+Hibernate [M].北京:電子工業(yè)出版社,2007.

作者簡介:包烏格德勒(1979-),男(蒙古族),內(nèi)蒙古興安盟人,呼和浩特民族學(xué)院計算機科學(xué)與技術(shù)系講師,研究方向:電子商務(wù)、軟件工程。

(責(zé)任編輯:趙秀娟)

察隅县| 自治县| 道真| 濮阳市| 上高县| 仪征市| 青铜峡市| 岗巴县| 乐昌市| 郑州市| 稷山县| 长葛市| 金沙县| 章丘市| 南涧| 肇源县| 盐亭县| 华坪县| 苍溪县| 冕宁县| 灵山县| 泸水县| 高州市| 峡江县| 昔阳县| 汉沽区| 庆阳市| 安陆市| 鱼台县| 左权县| 元阳县| 瑞安市| 昆明市| 嘉兴市| 平乐县| 东阳市| 桐庐县| 岳阳县| 蕉岭县| 巴南区| 漯河市|