Java中urlrewriter的使用

最近公司以前的一個項目需要升級改版,其中的一個模塊是使用 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 >   

 

 

    *.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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章