公司有時候要寫一些小的項目,而用java搭建web的一個缺(特)陷(征)就是動態網頁的后綴名.jsp。沒辦法啊,就是不能以.jsp結尾,原因有幾個:隱藏服務端技術;吸引爬蟲;對用戶更友好;等等。如果全都用Servlet,那我選擇狗帶。
實際上,Spring MVC已經很好地解決了這個問題(不要問我怎么解決,RequestMapping注解),但由於項目很小,使用Spring簡直就是為了Spring而Spring,所以還是傳統的jsp+Servlet開發模式。那么,怎么解決我們的問題呢?答案很簡單,重寫Url。怎么重寫?用Url Rewrite Filter!
官網:http://www.tuckey.org/urlrewrite/
還有一篇文章寫得不錯:http://blog.csdn.net/kimsoft/article/details/4194853
-
使用方法
導入jar包,在web.xml里配置一個filter,在完善配置文件urlrewrite.xml。
官方壓縮包里面有下面幾個文件,全部放在WEB-INF文件夾下
-
配置文件
官方配置里說明的很詳細,這里我分享一下我的配置。
-
web.xml
<welcome-file-list>
<welcome-file>/jsp/index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/jsp/error.jsp</location>
</error-page>
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
-
urlrewrite.xml
<rule>
<from>/(.*).html</from>
<to>/jsp/$1.jsp</to>
</rule>
<rule>
<from>.jsp</from>
<to>/jsp/error.jsp</to>
</rule>
-
- 我將index.jsp和error.jsp放入/WebRoot/jsp文件夾中,上述配置實現了訪問.jsp結尾的網頁資源時都報404,而訪問.html的網頁資源時,都去訪問jsp文件夾下的同名jsp文件。