jsp重寫url


眾所周知,使用java web編程出來的網站都是.jsp結尾的,而別人的網站都是以.html結尾的,那么這種效果是怎么實現的呢?就是這篇文章產生的原因,jsp重寫url需要設計到第三方架包urlrewritefilter,這里提供一個下載地址

urlrewritefilter

java導入第三方架包

1.將urlrewrite-2.6.0.jar放入項目的WEB-INF—>lib文件夾下

2.將urlrewrite.xml放入WEB-INF文件夾下

 

 3.在web.xml中加入,表示加載UrlRewriteFilter類,並且攔截所有訪問請求

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>
            org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
        </filter-class>
  </filter>
  <filter-mapping>
  
    <filter-name>UrlRewriteFilter</filter-name>
<!--攔截所有-->
<url-pattern>/*</url-pattern>
 </filter-mapping>

4.修改urlrewrite.xml里面的配置

其余的不用管,只需要管理<rule>這個節點里面的內容,這里面配置的就是重寫url的規則

<from>顯示在瀏覽器上的地址,呈現出來給人看的,比如xxx.html

<to>實際指向的項目里面的頁面地址,比如呈現出來的xxx.html其實訪問的是xxx.jsp

<from>里面編寫攔截規則,^代表規則開始;$代表規則結束;()代表參數,里面可以填寫正則表達式;$1代表第一個參數

比如<from>^/(.*).html</from> <to>/$1.jsp</to> 只要是.html結尾的地址都會被攔截然后轉成實際地址,(.*)表示可以填寫任意內容$1表示括號里面是什么這個值就是什么

比如/index.html實際訪問的就是/index.jsp

 

注意:

  如果<from>里面填寫的是(.*)那么你的圖片路徑,引用各種外部資源路徑就會有問題

  如果地址欄后面會有參數的拼接,可以

<from>^/(.*).html?(.*)</from>第二個(.*)即為拼接參數的形式字符串比如/index.html?name=''&id=''
<to>/$1.jsp?$2</to>第二個$2即為拼接參數帶進來的值比如/index.jsp?name=''&id=''

 

至此整個重寫url就完成了,還有什么不足之處請大家多多指教哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM