Url Rewrite Filter 是一个基于java的url rewirte开源项目,功能类似Apache中的rewrite模块。其实,Url Rewrite让apache来负责才是最好的选择,因为mod_rewrite已经很成熟了,功能或者效率上都更好用,apache已足以使urlrewrite的功能透明了,对于多个应用使用起来更方便。这篇文章介绍的urlrewrite filter只是给那些不打算使用apache的应用提供了另外一种选择。
一、主要功能
a) 实现url地址的伪静态化
例如可以把http://localhost:8080/myindex.do?method=listIndex&user=ezplus的请求重定向或转发到http://localhost:8080/blog/ezplus,这样做就避免了url中出现?&之类的符号,而且页面伪静态化之后也增加了被搜索引擎找到的概率。
b) 根据配置文件自动转化页面上的连接
在写页面的时候程序员不用关心在页面中出现的url地址将被如何伪静态化,例如,程序员还是可以在写页面的时候使用http://localhost:8080/myindex.do?method=listIndex&user=ezplus,通过在urlrewrite.xml中配置<outbound-rule></outbound-rule>,既可以实现页面url地址自动转化为伪静态化后的地址,用户在查看页面源码的时候原http://localhost:8080/blog/ezplus将被自动替换为http://localhost:8080/blog/ezplus
二、安装使用
1.下载地址:http://tuckey.org/urlrewrite/#download
下载的文件(Binary的)结构简单:urlrewrite.xml和lib文件夹下的一个.jar
2.jar文件放入项目的lib库中,urlrewrite.xml和web.xml放在一块。修改web.xml,添加以下配置:
<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>/*</url-pattern>
</filter-mapping>
我觉得/*这样的通配,并不符合我的预期,我只想对部分路径进行URL的重写,/*可能会造成我想象不到的或者是许微不足道的性能浪费.我把它改成了我需要的:
<filter-mapping>
??? <filter-name>UrlRewriteFilter</filter-name>
??? <url-pattern>/member/*</url-pattern>
</filter-mapping>
<filter-mapping>
??? <filter-name>UrlRewriteFilter</filter-name>
??? <url-pattern>/article/*</url-pattern>
</filter-mapping>
等…
3.urlrewriter.xml的配置
先提一下urlrewriter.xml中原有的几个例子:
<rule>
???? <fr
免责声明: 本文仅代表作者个人观点,与无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
推荐阅读
友情链接:
Copyright © 2013-2023 页 当前在线:1168人 网站在1天2时33分49秒内访问总人数:292326人 当前 28.40%