麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

Java UrlRewriter偽靜態(tài)技術(shù)運(yùn)用深入分析

2019-11-26 16:16:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
通常我們?yōu)榱烁玫木徑夥?wù)器壓力,和增強(qiáng)搜索引擎的友好面,都將文章內(nèi)容生成靜態(tài)頁(yè)面。
但是有時(shí)為了能實(shí)時(shí)的顯示一些信息,或者還想運(yùn)用動(dòng)態(tài)腳本解決一些問(wèn)題,不能用靜態(tài)的方式來(lái)展示網(wǎng)站內(nèi)容,必須用到動(dòng)態(tài)頁(yè)面顯示。

這樣以來(lái),就損失了對(duì)搜索引擎的友好面,怎么樣在兩者之間找個(gè)中間方法呢,如何增強(qiáng)你網(wǎng)站中地址的可讀性和讓搜索引擎快速的收錄到你的站點(diǎn)?

這就需要你美化你的網(wǎng)頁(yè)的地址,這就產(chǎn)生了偽靜態(tài)技術(shù),也就是我們常說(shuō)的Url Rewriter重寫技術(shù)。就是當(dāng)我們?cè)L問(wèn)一個(gè)頁(yè)面時(shí),地址欄中展示出來(lái)的是以“.html”為結(jié)尾的靜態(tài)頁(yè)面形式,而實(shí)際上我們?cè)L問(wèn)的動(dòng)態(tài)網(wǎng)頁(yè)。這里就需要用到UrlRewriter技術(shù)。

大家熟悉的可能有很多服務(wù)器都提供Url重寫的技術(shù),以前我們用的最多的就是Apache,Jboss這樣一些服務(wù)器自帶的一些Url重寫,但是他們的配置比較麻煩,性能又不是太好。現(xiàn)在我們有專一的開源框架來(lái)完成Url重寫任務(wù),今天我要介紹的就是UrlRewriteFilter,它使用起來(lái)比較簡(jiǎn)單。UrlRewriteFilter是一個(gè)用于改寫URL的Web過(guò)濾器,類似于Apache的mod_rewrite。適用于任何Web應(yīng)用服務(wù)器(如Resin,Orion,Tomcat等)。其典型應(yīng)用就把動(dòng)態(tài)URL靜態(tài)化,便于搜索引擎爬蟲抓取你的動(dòng)態(tài)網(wǎng)頁(yè)。
我們先簡(jiǎn)單的了解一下使用Url重寫能給你網(wǎng)站帶來(lái)哪些好處。

第一:有利于搜索引擎的抓取,因?yàn)楝F(xiàn)在大部分的搜索引擎對(duì)動(dòng)態(tài)頁(yè)面的抓取還比較弱,它們更喜歡抓取一些靜態(tài)的頁(yè)面。而我們現(xiàn)在的頁(yè)面大部分的數(shù)據(jù)都是動(dòng)態(tài)的顯示的。這就需要我們把動(dòng)態(tài)頁(yè)面變成靜態(tài)的頁(yè)面,有利于搜索引擎的抓取。

第二:讓用戶更容易理解,很少有用戶去關(guān)心你網(wǎng)站的頁(yè)面的地址,但對(duì)一般的大中型網(wǎng)站增強(qiáng)可讀性還是必須的。這樣會(huì)讓你的網(wǎng)站更加完美。

第三:隱藏技術(shù)的實(shí)現(xiàn),我們可以通過(guò)Url重寫可以實(shí)現(xiàn)技術(shù)的隱藏。不至于暴露你所采用的技術(shù),給一些想攻擊你網(wǎng)站的愛好者提供方便。

第四:可以很方便的重用,提高網(wǎng)站的移植性。如果我們后臺(tái)方法改動(dòng)的話,可以保證前臺(tái)的頁(yè)面部分不用改。這樣就提高了網(wǎng)站的移植性。

它雖然有這么多的優(yōu)點(diǎn),但是也有一點(diǎn)缺點(diǎn)的,因?yàn)樗峭ㄟ^(guò)過(guò)濾器原理來(lái)實(shí)現(xiàn)的,就以為著又多了一道訪問(wèn),會(huì)多少影響點(diǎn)訪問(wèn)速度的,這個(gè)可以忽略不計(jì)的。
現(xiàn)在UrlRewriter技術(shù)有兩個(gè)技術(shù)平臺(tái)的,一個(gè)就是在Java方向的,另一個(gè)就是.NET方向的。今天我們講的是Java方向的應(yīng)用。

首先讓我們了解它的工作原理,說(shuō)白了它就是一個(gè)簡(jiǎn)單的過(guò)濾器(Filter),看看源碼你就會(huì)很快的明白,它就是通過(guò)我們?cè)趈sp中常用的兩個(gè)方法實(shí)現(xiàn)的forward(),sendRedirect()。
下面我們就Url重寫技術(shù)進(jìn)行簡(jiǎn)單應(yīng)用:
第一步:下載urlrewrite-3.2.0beta.jar包,并把urlrewrite-3.2.0beta.jar拷到classpath下。
第二步:在WEB-INF目錄下建一個(gè)urlrewrite.xml配置文件。
第三步:在web.xml配置文件中初始化配置UrlRewriteFilter。在配置文件中加上下面的代碼:
復(fù)制代碼 代碼如下:

<!-- 在配置文件中設(shè)置 URL Rewrite-->
<FILTER></FILTER>
<FILTER-NAME></FILTER-NAME>UrlRewriteFilter
<FILTER-CLASS></FILTER-CLASS>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
<FILTER-MAPPING></FILTER-MAPPING>
<FILTER-NAME></FILTER-NAME>UrlRewriteFilter
<URL-PATTERN></URL-PATTERN>/*
<DISPATCHER></DISPATCHER>REQUEST
<DISPATCHER></DISPATCHER>FORWARD

最后我要簡(jiǎn)單的講一下常用的兩個(gè)配置規(guī)則,以下就是簡(jiǎn)單的urlrewrite.xml配置片段。不要習(xí)慣Java的命名法把它寫成urlRewrite.xml,這樣即使你加上
復(fù)制代碼 代碼如下:

<INIT-PARAM></INIT-PARAM>
<PARAM-NAME></PARAM-NAME>confPath
<PARAM-VALUE></PARAM-VALUE>/WEB-INF/urlRewrite.xml
在啟動(dòng)的服務(wù)器的時(shí)候還是會(huì)報(bào)錯(cuò)的,因?yàn)樵创a中必須是全小寫的(urlrewrite.xml)且只能放到WEB-INF下面。
<!--l version="1.0" encoding="utf-8-->
<URLREWRITE></URLREWRITE>
<!-- 顯示主題帖 -->
<RULE></RULE>
<FROM></FROM>^/forum/thread/([0-9]+).html$
<TO type="forward"></TO>/forum/list.action?id=$1
<RULE></RULE>
<FROM></FROM>^/forum/thread/([0-9]+).html?page=([0-9]+)$
<TO type="forward"></TO>/forum/list.action?id=$1&page=$2

所有的規(guī)則配置都寫在這里。第一個(gè)常用個(gè)規(guī)則就是站內(nèi)的簡(jiǎn)單重寫。
<rule>
<from></from>
<to type="forward></to>
</rule>
<from></from>
寫上你自己定義的訪問(wèn)地址,通常采用正則表達(dá)式的寫法;<to type="forward></to>就是實(shí)際的訪問(wèn)地址。比如我們實(shí)際的訪問(wèn)地址是: http://www.phome.asia/forum/list.action?id=16931&page=2而我們想把它重寫為http://www.phome.asia/forum/thread/16931.html?page=2。這樣看起來(lái)比我們實(shí)際的要好看的多。我們就應(yīng)該這樣的寫:
復(fù)制代碼 代碼如下:

<RULE></RULE>
<FROM></FROM>^/forum/thread/([0-9]+).html?page=([0-9]+)$
<TO type="forward"></TO>/forum/list.action?id=$1&page=$2

簡(jiǎn)單的介紹一下常用的正規(guī)表示式
代碼說(shuō)明
. 匹配除換行符以外的任意字符
/w 匹配字母或數(shù)字或下劃線或漢字
/s 匹配任意的空白符
/d 匹配數(shù)字
/b 匹配單詞的開始或結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束
常用的&要用 &來(lái)表示。$1,$2代表與你配置正規(guī)表達(dá)式>/(/w+)/(/w+)/相對(duì)應(yīng)的參數(shù)。<to type="forward">默認(rèn)的是 type="forward"。
另一個(gè)常用的規(guī)則就是連接外部的網(wǎng)站。就要用到<to type="redirect">。
復(fù)制代碼 代碼如下:

<RULE></RULE>
<FROM></FROM>^/rss/yahoo/.html$
<TO type="redirect"></TO> http://add.my.yahoo.com/rss? url= http://feed.feedsky.com/ MySiteFeed
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品超碰 | 欧美性生活久久 | 国产精品高潮99久久久久久久 | 国产99久久精品一区二区 | 亚洲欧美日韩中文在线 | 免费午夜视频 | 久久国产夫妻视频 | 久久国产精品久久久久 | 国产精品自在线拍 | 国产成人高清成人av片在线看 | 国产成人在线免费观看视频 | 99re热视频这里只精品 | 国产精品午夜一区 | 精品国产一区二区三区久久久狼牙 | 黄色高清av| 丰满年轻岳中文字幕一区二区 | xnxx 日本19| 欧洲精品久久 | 国产精品高潮99久久久久久久 | 国产69精品久久久久孕妇黑 | 男女亲热网站 | 欧美成人国产va精品日本一级 | 538在线精品| 在线成人影视 | 鲁丝一区二区二区四区 | 久久久久久久久免费 | 国产福利不卡一区二区三区 | 毛片视频网站 | 亚洲欧美国产精品va在线观看 | 久久精品免费网站 | 九一免费国产 | 国产精品视频一区二区三区四区国 | 欧美日韩高清不卡 | 久久久青 | 99精品视频在线免费观看 | 国产人成免费爽爽爽视频 | h色视频在线观看 | 成人爱爱电影 | 黄色av一区二区三区 | 亚洲特黄a级毛片在线播放 久久久入口 | 日韩精品dvd|