jsp實作類別似部落格的URL轉向功能

來源:互聯網
上載者:User

細心的我們發現當在csdn裡輸入hi.csdn.net/**時候,這裡並沒有是一個jsp或者php頁面,被轉向了其他的地方。這裡**可以為使用者的名稱,這樣的實現方式可以有效隱藏地址,傳遞參數等。為每個使用者指派自己的路徑。但是這裡並不是重新導向301,配置錯誤頁面404等。比如www.ttsmm.com 。這裡就做了301,當使用者輸入ttsmm.com時候瀏覽器會301自動跳轉到www.ttsmm.com .

這種實現的方式是偽靜態。 需要一定的靜態規則才能轉向過去。

 

實現方法:

1.下載urlrewrite,官方:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip

2.解壓縮檔案,壓縮包內檔案copy到項目中(壓縮包位置 -> 項目位置):

urlrewrite-2.6.0-src/webapp/WEB-INF/lib/urlrewrite-2.6.0.jar -> WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar

urlrewrite-2.6.0-src/webapp/WEB-INF/urlrewrite.xml -> WebRoot/WEB-INF/urlrewrite.xml

 

web.xml 配置:

<filter><br /> <filter-name>UrlRewriteFilter</filter-name><br /> <filter-class><br /> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter<br /> </filter-class><br /> </filter><br /> <filter-mapping><br /> <filter-name>UrlRewriteFilter</filter-name><br /> <url-pattern>/*</url-pattern><br /> </filter-mapping><br />

 

修改urlrewrite.xml

 

<?xml version="1.0" encoding="utf-8"?><br /><!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"<br />"http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> </p><p><!-- </p><p>Configuration file for UrlRewriteFilter </p><p>http://tuckey.org/urlrewrite/</p><p>--><br /><urlrewrite><br /> <rule><br /> <from>^/([a-z]+)$</from><br /> <to type= "forward" >/world.jsp?id=$1</to><br /> </rule><br /> <rule><br /> <from>^/world/(.*)$</from><br /> <to>/world.jsp?tid=$1</to><br /> </rule><br /> <rule><br /> <from>^/(.*).html$</from><br /> <to>/test1/$1.jsp</to><br /> </rule> </p><p> <outbound-rule><br /> <note><br /> The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)<br /> the url /rewrite-status will be rewritten to /test/status/. </p><p> The above rule and this outbound-rule means that end users should never see the<br /> url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks<br /> in your pages.<br /> </note><br /> <from>/rewrite-status</from><br /> <to>/test/status/</to><br /> </outbound-rule><br /></urlrewrite><br />

 

rule是url重寫規則,from是顯示出來的地址,to是映射的實際地址,$1是重寫參數,可以為多個,()裡是匹配的Regex.
好了,在項目中建立world.jsp,啟動tomcat,輸入
http://localhost:8080/mysite/world/1

mysite是你的項目名

實際上訪問的是http://localhost:8080/mysite/world.jsp?tid=1
這樣就簡單的實現了偽靜態效果

 

購買空間的時候,如果你的空間需要偽靜態支援,請務必要問是否支援偽靜態,或者免費開通偽靜態。以免上當!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.