Java中urlrewriter的使用

  最近公司之前的一個項目須要升級改版,其中的一個模塊是使用Struts2作的不須要改動,可是須要將其從以前的項目裏面剝離出來,看了看官網,發現全部的連接訪問的靜態地址,覺得是FreeMarker實現的,仔細研究了會發現不是那麼回事,原來是僞靜態,程序使用了urlrewriter。其實urlrewriter的使用很簡單,看看下面你就明白了。 html

urlrewriter簡介:url rewrite將咱們的動態網頁地址轉化爲靜態的地址,如htmlshtml,還能夠隱藏網頁的真正路徑,好比:有時候須要將xxx.com/news/ type1/001.jsp 轉化成顯示路徑爲xxx.com/news_type1_001.jsp java

 

【第一步】下載jar web

http://tuckey.org/urlrewrite/#download下載最新的jar文件,當前最新的是Beat3.2我下載的是urlrewritefilter-2.6.zip。解壓獲得urlrewrite-2.6.0.jar  urlrewrite.xml 正則表達式

 

【第二步】新建Web項目TestUrlRewrite 瀏覽器

WebRoot下新建index.jsp,修改其代碼以下所示: tomcat

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>  

 

【第四步】發佈程序 app

將程序發佈到Tomcat中,而後在瀏覽器輸入以下地址: jsp

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>  

 

 

    *.html 是一個正則表達式的串。若是你對這個不理解能夠學習一下java中正則表達式的應用。

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

 

【第六步】修改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>  

 

【第七步】重啓tomcat

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

 

       在這裏是匹配/(.*).html,將請求轉發到index.jsp?id=$1。你還能夠根據須要轉到xxx.action?id=$1

相關文章
相關標籤/搜索