當(dāng)前位置:首頁 >  站長 >  建站經(jīng)驗(yàn) >  正文

java中如何用urlrewritefilter實(shí)現(xiàn)網(wǎng)站偽靜態(tài)?

 2019-03-21 15:07  來源: A5用戶投稿   我來投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競價(jià),好“米”不錯(cuò)過

大部分搜索引擎都會(huì)優(yōu)先考慮收錄靜態(tài)的HTML頁面,而不是動(dòng)態(tài)的*.jsp、*.php頁面。但實(shí)際上絕大部分網(wǎng)站都是動(dòng)態(tài)的,不可能全部是靜態(tài)的HTML頁面,因此互聯(lián)網(wǎng)上大部分網(wǎng)站都會(huì)考慮偽靜態(tài)——就是將*.jsp、*.php這種動(dòng)態(tài)URL偽裝成靜態(tài)的HTML頁面。請(qǐng)問java中如何實(shí)現(xiàn)偽靜態(tài)呢?

通過Filter攔截所有發(fā)向*.html請(qǐng)求,然后按某種規(guī)則將請(qǐng)求forward到實(shí)際的*.jsp頁面即可。下面要使用的URL Rewrite開源項(xiàng)目就是為這種思路提供了實(shí)現(xiàn)。

如何利用URL Rewrite實(shí)現(xiàn)網(wǎng)站偽靜態(tài):

1、下載Url Rewrite的最新版本。我下的是urlrewritefilter-4.0.3.jar

2、將下載得到的urlrewritefilter-4.0.3.jar放在你構(gòu)建的項(xiàng)目WEB-INF下的lib文件夾中

3、在web.xml文件中配置啟用URL Rewrite Filter,在web.xml文件中增加如下配置片段(該片段放在所有的servlet標(biāo)簽的以前)

java代碼:

  

UrlRewriteFilter  

org.tuckey.web.filters.urlrewrite.UrlRewriteFilter  

  

UrlRewriteFilter  

/*  

REQUEST  

FORWARD  

上面的配置片段指定使用URL Rewrite Filter 攔截所有的用戶請(qǐng)求。

4、在你項(xiàng)目的WEB-INF路徑下增加urlrewrite.xml文件,該文件定義了偽靜態(tài)映射規(guī)則,這份偽靜態(tài)規(guī)則是基于正則表達(dá)式的。

文件內(nèi)容如下:

java代碼:

  

"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">  

/userinf-(\w*).html  

%{context-path}/userinf.jsp?username=$1  

上面的規(guī)則文件中只定義了一個(gè)簡單的規(guī)則:所有發(fā)向/user-(\w*).html的請(qǐng)求都將被redirect到userinf.jsp頁面,并將(\w*)正則表達(dá)式所匹配的內(nèi)容作為username參數(shù)值。根據(jù)這個(gè)偽靜態(tài)規(guī)則,我們?yōu)檫@個(gè)應(yīng)用提供一個(gè)userinf.jsp頁面(該頁面只是我們的一個(gè)測試頁面,用戶可以自己定義自己的頁面)。代碼如下:

java代碼:

<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %>  

<%  

String user = request.getParameter("username");  

%>  

<%=user%>的個(gè)人信息  

<%  

out.println("現(xiàn)在時(shí)間是: "+new java.util.Date() +"

");  

out.println("用戶名: "+user);  

%>  

一切準(zhǔn)備就緒后,重啟tomcat,然后在瀏覽器地址欄輸入userinf-xxxx.html的請(qǐng)求地址,例如:我構(gòu)建的項(xiàng)目名稱叫做webDemo那么我就可以輸入:http://localhost:8080/webDemo/userinf-test.html

個(gè)人站:http://www.yzcopen.com/  有時(shí)間做做靜態(tài)處理

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
偽靜態(tài)設(shè)置
java

相關(guān)文章

  • 參加Java培訓(xùn)班有用嗎?這個(gè)問題大家要怎么看待

    在眾多的編程培訓(xùn)中,Java軟件開發(fā)作為老牌兒的編程主流,從發(fā)展前景上看,無論是現(xiàn)在還是將來,依然會(huì)持續(xù)火爆的狀態(tài)。對(duì)于當(dāng)下年輕人想要快速的掌握這項(xiàng)技術(shù),進(jìn)入到這個(gè)行業(yè),最為熱議的話題是“參加Java培訓(xùn)班有用嗎”。小編可以肯定的回答,是有用的,學(xué)習(xí)的根據(jù)來自于興趣,如果大家是真的熱愛這行,在加上專

    標(biāo)簽:
    java
  • 動(dòng)力節(jié)點(diǎn)南京Java培訓(xùn)口碑教學(xué),滿分教學(xué)就業(yè)體驗(yàn)

    江南佳地,邂逅金陵,動(dòng)力節(jié)點(diǎn)南京Java培訓(xùn)校區(qū),為長三角地帶的發(fā)展注入專業(yè)Java教培力量,動(dòng)力節(jié)點(diǎn)自09年成立至今,專注Java培訓(xùn)教學(xué),一直秉承著“為學(xué)員服務(wù)”的唯一教育理念,堅(jiān)持口碑教學(xué),被業(yè)界稱為“口口相傳的Java培訓(xùn)黃埔軍校”。

    標(biāo)簽:
    java
    java培訓(xùn)
  • 動(dòng)力節(jié)點(diǎn)廣州Java培訓(xùn),為大家撐起一個(gè)IT的未來

    廣州動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu),一直以來專注Java的教學(xué),深耕教育,穩(wěn)扎穩(wěn)打,在行業(yè)具有“口口相傳的黃埔軍?!敝Q,有句話說的好“沒有量變的積累,哪來質(zhì)變的飛躍”動(dòng)力節(jié)點(diǎn)和你一起,扎扎實(shí)實(shí)做教育,你們?cè)鷮?shí)實(shí)學(xué)本領(lǐng),時(shí)刻準(zhǔn)備著,有朝一日,風(fēng)自會(huì)來。

    標(biāo)簽:
    java
    在線培訓(xùn)
  • 動(dòng)力節(jié)點(diǎn)成都Java培訓(xùn)招生源于口碑,業(yè)界巨頭

    為了能夠搭乘互聯(lián)網(wǎng)的快車,實(shí)現(xiàn)人生的逆轉(zhuǎn),不少年輕人選擇動(dòng)力節(jié)點(diǎn)成都Java培訓(xùn),動(dòng)力節(jié)點(diǎn)作為Java職業(yè)培訓(xùn),沒有理由不去擔(dān)起這份沉甸甸的信任,所以,自09年創(chuàng)立起,一直專注于Java的教學(xué),將全部的資源

  • 參加動(dòng)力節(jié)點(diǎn)北京Java培訓(xùn)會(huì)讓學(xué)者更加有信心

    通過Java培訓(xùn)出來的同學(xué)與沒參加過培訓(xùn)的同學(xué)差距還是有不少的,同學(xué)一直以來對(duì)參加培訓(xùn)都保持著猶豫的心態(tài),其實(shí)大家了解后會(huì)發(fā)現(xiàn),不管是對(duì)零基礎(chǔ)還是有編程認(rèn)知的同學(xué)來講,參與更加密集、系統(tǒng)化的培訓(xùn)

熱門排行

信息推薦