注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红尘若梦

生活的色彩

 
 
 

日志

 
 

Java伪静态URLRewrite包的使用简介  

2015-12-04 07:52:12|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
UrlRewriteFilter是一个Java编写的用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat,Jetty等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页,还可以隐藏网页的真正路径,比如:有时候需要将593668.com/news/ 001.jsp 转化成显示路径为593668.com/news_001.html。
首先是下载,地址:官方 地址1 地址2 
1)把jar包放到你的web项目的WEB-INF/lib下面。
2)配置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>

<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

3)在WEB-INF下面新建urlrewrite.xml(注意全小写)【另外,也可以在web.xml中自行指定配置文件】。其代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<from>^/show-([0-9]+).htm$</from>
<to>/show.jsp?id=$1</to>
</rule>
<rule>
<from>^/cat-([0-9]+)-([0-9]+).htm$</from>
<to type="redirect">/show.jsp?catid=$1&amp;start=$2</to>
</rule>

<rule>
<condition name="user-agent">UP/.Browser/3.*SC03 .*</condition>
<from>/wap/*</from>
<set name="client">Samsung SCH-6100</set>
</rule>
</urlrewrite>

4)重启下WEB容器即可。
相信看了以上你就明白了,原理非常简单,就是利用过滤器通过一个正则将相关的伪静态页面将相关的请求转发过去。
附加说明:
a)在配置中如果要使用”&”, 请用&amp;
b)通配符匹配引擎可以替代正则表达式
c)使用<to type="redirect">可以直接跳转。
d)不要包含context path,过滤器不能处理。
e)condition语句,可以伪造相关的请求参数如client,cookie,header等。
g)最好将该过滤器设置放在web.xml前面,尽可能减少匹配来提高性能
h)如果项目有全局编码过滤器,请在后面加入:

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

因为filter-mapping默认只处理REQUEST,如果先执行URLRewrite过滤器,那么就会FORWARDSet Character Encoding,如果不这样设置的话,就会造成乱码。
还需要更多相关介绍文档请自行去官网查看:http://tuckey.org/urlrewrite/。
  评论这张
 
阅读(52)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017