Java中的URLRewrite

來源:互聯網
上載者:User

標籤:

最近公司以前的一個項目需要升級改版,其中的一個模組是使用Struts2做的不需要改動,但是需要將其從之前的項目裡面剝離出來,看了看官網,發現所有的連結訪問的靜態地址,以為是FreeMarker實現的,仔細研究了會發現不是那麼回事,原來是偽靜態,程式使用了urlrewriter。其實urlrewriter的使用很簡單,看看下面你就明白了。

urlrewriter簡介:url rewrite將我們的動態網頁地址轉化為靜態地址,如html、shtml,還可以隱藏網頁的真正路徑,比如:有時候需要將xxx.com/news/ type1/001.jsp 轉化成顯示路徑為xxx.com/news_type1_001.jsp。

 

【第一步】下載jar包

在http://tuckey.org/urlrewrite/#download下載最新的jar檔案,當前最新的是Beat3.2我下載的是urlrewritefilter-2.6.zip。解壓得到urlrewrite-2.6.0.jar 和 urlrewrite.xml

 

【第二步】建立Web項目TestUrlRewrite,

在WebRoot下建立index.jsp,修改其代碼如下所示:

Java代碼
  1. <%@ page contentType="text/html; charset=UTF-8"%> 
  2.  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
  4.  
  5. <html> 
  6.  
  7.        <head> 
  8.  
  9.               <title>測試TestUrlRewrite</title> 
  10.  
  11.        </head> 
  12.  
  13.        <body> 
  14.  
  15.               <% 
  16.  
  17.                      String id = (String) request.getParameter("id"); 
  18.  
  19.                      out.println("<h3> the value is  : " + id +" </h3> "); 
  20.  
  21.               %>   
  22.  
  23. </body> 
  24.  
  25. </html> 
<%@ page contentType="text/html; charset=UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>       <head>              <title>測試TestUrlRewrite</title>       </head>       <body>              <%                     String id = (String) request.getParameter("id");                     out.println("<h3> the value is  : " + id +" </h3> ");              %>  </body></html>

 

【第四步】發布程式

將程式發布到Tomcat中,然後在瀏覽器輸入如下地址:

http://localhost:8080/TestUrlRewrite/index.jsp?username=niejingyu,頁面展示效果1所示:

 

 

【第五步】添加urlrewrite檔案

將urlrewrite-2.6.0.jar複製到WebRoot\WEB-INF\lib下。

將urlrewrite.xml複製到WebRoot\WEB-INF下,其中urlrewrite.xml代碼如下所示:

Xml代碼
  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN" 
  4.  
  5.         "http://tuckey.org/res/dtds/urlrewrite3.1.dtd"> 
  6.  
  7. <urlrewrite> 
  8.  
  9.        <rule> 
  10.  
  11.               <from>/(.*).html</from> 
  12.  
  13.               <to>index.jsp?id=$1</to> 
  14.  
  15.        </rule> 
  16.  
  17. </urlrewrite> 
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"        "http://tuckey.org/res/dtds/urlrewrite3.1.dtd"><urlrewrite>       <rule>              <from>/(.*).html</from>              <to>index.jsp?id=$1</to>       </rule></urlrewrite>

 

 

 

 

    *.html 是一個Regex的串。如果你對這個不理解可以學習一下java中Regex的應用。

    $1 也是一個Regex的語言匹配正則中的組捕獲。

 

【第六步】修改web.xml檔案

在web.xml 增加如下內容:

Xml代碼
  1. <filter> 
  2.  
  3.        <filter-name>UrlRewriteFilter</filter-name> 
  4.  
  5.        <filter-class> 
  6.  
  7.               org.tuckey.web.filters.urlrewrite.UrlRewriteFilter 
  8.  
  9.        </filter-class> 
  10.  
  11.        <init-param> 
  12.  
  13.               <param-name>logLevel</param-name> 
  14.  
  15.               <param-value>DEBUG</param-value> 
  16.  
  17.        </init-param> 
  18.  
  19. </filter> 
  20.  
  21. <filter-mapping> 
  22.  
  23.        <filter-name>UrlRewriteFilter</filter-name> 
  24.  
  25.        <url-pattern>/*</url-pattern> 
  26.  
  27. </filter-mapping> 
<filter>       <filter-name>UrlRewriteFilter</filter-name>       <filter-class>              org.tuckey.web.filters.urlrewrite.UrlRewriteFilter       </filter-class>       <init-param>              <param-name>logLevel</param-name>              <param-value>DEBUG</param-value>       </init-param></filter><filter-mapping>       <filter-name>UrlRewriteFilter</filter-name>       <url-pattern>/*</url-pattern></filter-mapping>

 

【第七步】重啟tomcat

       訪問http://localhost:8080/TestUrlRewrite/2.html,頁面效果:

 

 

       在這裡是匹配/(.*).html,將請求轉寄到index.jsp?id=$1。你還可以根據需要轉到xxx.action?id=$1

薊縣農家院網  成都農家樂網  重慶農家樂網  北京農家院網  長株潭農家樂網  就愛農家樂網

Java中的URLRewrite

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.