最近公司之前的一個項目須要升級改版,其中的一個模塊是使用Struts2作的不須要改動,可是須要將其從以前的項目裏面剝離出來,看了看官網,發現全部的連接訪問的靜態地址,覺得是FreeMarker實現的,仔細研究了會發現不是那麼回事,原來是僞靜態,程序使用了urlrewriter。其實urlrewriter的使用很簡單,看看下面你就明白了。 html
urlrewriter簡介:url rewrite將咱們的動態網頁地址轉化爲靜態的地址,如html、shtml,還能夠隱藏網頁的真正路徑,好比:有時候須要將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
【第四步】發佈程序 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代碼以下所示:
*.html 是一個正則表達式的串。若是你對這個不理解能夠學習一下java中正則表達式的應用。
$1 也是一個正則表達式的語言匹配正則中的組捕獲。
【第六步】修改web.xml文件
在web.xml 增長以下內容:
【第七步】重啓tomcat
訪問http://localhost:8080/TestUrlRewrite/2.html,頁面效果如圖所示:
在這裏是匹配/(.*).html,將請求轉發到index.jsp?id=$1。你還能夠根據須要轉到xxx.action?id=$1