標籤:
最近公司以前的一個項目需要升級改版,其中的一個模組是使用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代碼
- <%@ 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>
<%@ 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代碼
- <?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>
<?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代碼
- <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>
<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