是否看到別人的網站網址名都不帶後綴名比較酷,比如qq空間的地址,其實用urlrewrite這個包很容易就實現了。
下面是使用說明:
1.下載urlrewrite,官方下載地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip
2.解壓縮文件,壓縮包內文件copy到項目中(壓縮包位置 -> 項目位置):
urlrewrite-2.6.0-src/webapp/WEB-INF/lib/urlrewrite-2.6.0.jar -> WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar
urlrewrite-2.6.0-src/webapp/WEB-INF/urlrewrite.xml -> WebRoot/WEB-INF/urlrewrite.xml
3.將以下代碼添加到web.xml裏
1 <filter>
2 <filter-name>UrlRewriteFilter</filter-name>
3 <filter-class>
4 org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
5 </filter-class>
6 </filter>
7 <filter-mapping>
8 <filter-name>UrlRewriteFilter</filter-name>
9 <url-pattern>/*</url-pattern>
10 </filter-mapping>
4.修改urlrewrite.xml
11 <?xml version="1.0" encoding="utf-8"?>
12 <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
13 "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
14
15 <!--
16
17 Configuration file for UrlRewriteFilter
18 http://tuckey.org/urlrewrite/
19
20 -->
21 <urlrewrite>
22 <rule>
23 <from>^/([a-z]+)$</from>
24 <to type= "forward" >/world.jsp?id=$1</to>
25 </rule>
26 <rule>
27 <from>^/world/(.*)$</from>
28 <to>/world.jsp?tid=$1</to>
29 </rule>
30 <rule>
31 <from>^/(.*).html$</from>
32 <to>/test1/$1.jsp</to>
33 </rule>
34
35 <outbound-rule>
36 <note>
37 The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
38 the url /rewrite-status will be rewritten to /test/status/.
39
40 The above rule and this outbound-rule means that end users should never see the
41 url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
42 in your pages.
43 </note>
44 <from>/rewrite-status</from>
45 <to>/test/status/</to>
46 </outbound-rule>
47 </urlrewrite>
rule是url重寫規則,from是顯示出來的地址,to是映射的實際地址,$1是重寫參數,可以爲多個,()裏是匹配的正則表達式.
好了,在項目中新建world.jsp,啓動tomcat,輸入
http://localhost:8080/mysite/world/1
mysite是你的項目名
實際上訪問的是http://localhost:8080/mysite/world.jsp?tid=1
這樣就簡單的實現了僞靜態的效果