真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaUrlRewrite如何實現(xiàn)網(wǎng)站URL重寫

這篇文章給大家介紹Java UrlRewrite如何實現(xiàn)網(wǎng)站URL重寫,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)的關(guān)注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)公司一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。

現(xiàn)在大部分的網(wǎng)站和商城都會使用到URL重寫,接觸到這個,也是因為正在做的電子商務(wù)商城。URL重寫,是將原有的URL采用另一種規(guī)則來顯示,使得用戶方便訪問同時也屏蔽一些信息。

Java UrlRewrite如何實現(xiàn)網(wǎng)站URL重寫

在此說下它的好處,在開發(fā)過程中,經(jīng)常會遇到一些帶了一大堆參數(shù)的URL,這樣子,一方面顯得煩亂,另一方面,一些信息直接顯示在URL上,會有些安全性問題。使用URL重寫,可以使帶有參數(shù)的URL以一種較規(guī)則的方式體現(xiàn),如:

/demoAction?id=1            ==>            /demo1.html

它也將本該在URL上顯示出來的傳參給隱蔽起來,隱藏了技術(shù)實現(xiàn)和敏感信息。另外,URL重寫,也有利于搜索引擎的訪問。

最近項目接觸到的URL重寫采用的是UrlRewrite,它主要是采用Filter技術(shù)在用戶請求的時候?qū)υL問的URL進行處理,來實現(xiàn)重寫的作用。

以下是UrlRewrite的使用實例(個人認為,UrlRewrite的官方文檔寫的還是比較全面易懂的)

UrlRewrite的導(dǎo)入:

UrlRewrite的導(dǎo)入非常簡單,首先需在項目的lib文件夾中加入urlrewrite-3.2.0.jar包,然后,在web.xml中聲明Filter

         UrlRewriteFilter         org.tuckey.web.filters.urlrewrite.UrlRewriteFilter                   UrlRewriteFilter         /*         REQUEST         FORWARD     

聲明完filter后,需要在WEB-INF目錄下新建一個urlrewrite.xml文件

    

該文件是UrlRewrite的規(guī)則制定文件,后續(xù)主要通過配置它來進行URL的重寫。

至此,UrlRewrite的導(dǎo)入就完成了

UrlRewrite 導(dǎo)入成功后,接下來主要通過在urlrewrite.xml添加規(guī)則,就能實現(xiàn)URL的重寫了。在此列舉一些常用的規(guī)則。

          ^/demo/(\w+).html$          /Struts/$1 

rule 是urlrewrite下的子節(jié)點,是urlrewrite的主要規(guī)則節(jié)點,在它里面包含from  和to兩個子節(jié)點,from表示請求的URL,to表示將轉(zhuǎn)到的真實的URL。關(guān)于from,UrlRewrite有兩種匹配的模式,一種是正則表達式匹 配,一種的通配符匹配,如上就是正則表達式匹配。當(dāng)進行匹配的時候,匹配部分的正則可以被提取為參數(shù)進行傳遞

如上規(guī)則設(shè)置,當(dāng)客戶端訪問的網(wǎng)址是http://127.0.0.1:8080/Struts/demo/hello.html  的時候,因為 匹配部分是hello,所以它跳轉(zhuǎn)到的是http://127.0.0.1:8080/Struts/hello 上。當(dāng)網(wǎng)址規(guī)則中有多個正則的時候,匹 配的參數(shù)也會隨之增加。如:

          ^/demo1/(\w+)/(\w+).html$          /Struts/$1.action?age=$2 

rule 的默認匹配方式是正則表達式,但是,有時候也可以以通配符的形式進行匹配。在編寫規(guī)則的時候,只需要在rule添加一個match-type=”wildcard” 的屬性即可。

          /demo2/*/*          /Struts/$1.action?age=$2 

關(guān)于to節(jié)點,UrlRewrite提供了多種網(wǎng)址跳轉(zhuǎn)方式,如forward和redirect,這兩種方式,和大部分MVC框架提供的功能一樣,在此不再贅述。

除了支持指定規(guī)則的跳轉(zhuǎn)外,UrlRewrite還支持當(dāng)匹配規(guī)則的時候執(zhí)行某個對象的某個函數(shù)

          ^/demo3/(\w+)/(\w+).html$                    /Struts/$1.action?age=$2 

如上述設(shè)置,要實現(xiàn)匹配規(guī)則是執(zhí)行某個函數(shù),需要添加多一個run節(jié)點,在節(jié)點上面添加對應(yīng)的類屬性和方法屬性。同時,對應(yīng)的類必須繼承 RewriteRule類,執(zhí)行的方法必須傳入兩個參數(shù),分別是HttpServletRequest 和HttpServletResponse

public class Demo extends RewriteRule{      public void log(HttpServletRequest request,HttpServletResponse response){         System.out.println("haha1");     }      public void log2(HttpServletRequest request,HttpServletResponse response){         System.out.println("haha2");     } }

這樣,當(dāng)客戶端輸入的網(wǎng)址***次匹配到指定規(guī)則的時候,UrlRewrite就會執(zhí)行對應(yīng)的函數(shù),該函數(shù)只在***次匹配成功的時候執(zhí)行。

如果想要每次匹配規(guī)則都執(zhí)行某函數(shù),可以在urlrewrite添加class-rule子節(jié)點,該節(jié)點設(shè)置后,每次匹配規(guī)則后,指定的函數(shù)都會執(zhí)行一次。

除了對請求的URL進行處理外,UrlRewrite還提供了對返回頁面中的地址進行重寫的功能。使用rule是對用戶輸入的url進行處理,但是開發(fā)過程中,經(jīng)常需要在頁面中也添加一些網(wǎng)址請求,UrlRewrite可以通過規(guī)則,對頁面中的網(wǎng)址也進行重寫。如:

          /(\w+).action\?id=(\w+)$          /$1.html 

在UrlRewrite中添加該規(guī)則

這樣可以隱藏了許多開發(fā)中的技術(shù),較為安全。

以上,就是UrlRewrite的一些常見的用法。關(guān)于UrlRewrite,網(wǎng)上也有人說這個會影響性能,因為在每次請求的時候都需要經(jīng)過換一次過濾,但是這個還是要見仁見智,畢竟,使用URL重寫,對網(wǎng)址還是有好處的。

關(guān)于Java UrlRewrite如何實現(xiàn)網(wǎng)站URL重寫就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


當(dāng)前名稱:JavaUrlRewrite如何實現(xiàn)網(wǎng)站URL重寫
當(dāng)前鏈接:http://weahome.cn/article/ijpiii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部