王亮的空间

我们一直在努力....

URL重写

标签: url重写 java xml

需要一个urlrewritefilter的包,这个包是个开源的项目。

他的作用就是让我们使用的其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。 
隐藏技术实现,提高网站的移植性 
具体使用:
1-首先我们要有一个jar包叫urlrewrite-3.0.4.jar
2-
然后我们要在我们的web.xml文件中配置下这个包
xml 代码
  1. <filter>  
  2.     <filter-name>UrlRewriteFilter</filter-name>  
  3.     <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
  4.     <init-param>  
  5.       <param-name>logLevel</param-name>  
  6.       <param-value>DEBUG</param-value>  
  7.     </init-param>  
  8.   </filter>  
  9.   <filter-mapping>  
  10.     <filter-name>UrlRewriteFilter</filter-name>  
  11.     <url-pattern>/*</url-pattern>  
  12.   </filter-mapping>  
以上的这个就是我们在配置我们的过滤器。这样我们呢的每一个连接都会由这个类来完成URL的重写了。
但是具体怎么样的重写就有另一个文件来配置了。
所以我们是需要自己创建一个urlrewrite.xml的文件了,在这个文件中我们写我们想重写的url
xml 代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"  
  3. "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">  
  4. <urlrewrite>  
  5.   <rule>  
  6.     <from>index.html</from>  
  7.     <to >/index.jsp</to>  
  8.   </rule>  
  9.   <rule>  
  10.     <from>aptech/(\d*).html</from>  
  11.     <to >abc.jsp?name=$1</to>  
  12.   </rule>  
  13.   <rule>  
  14.     <from>aptech/(\d*)/(\d*).html</from>  
  15.     <to >abc.jsp?name=$1&sex=$2</to>  
  16.   </rule>  
  17. </urlrewrite>  
红色的部分叫做URL重写规则。
也就是说具体怎么样的重写我们的URL是由我们的这个规则来定义的。
比如我的第一规则rule就是说。我在页面上的一个url显示的是index.html
而实际上他会重新的定位到index.jsp上面去
……………………
比如我的第二规则rule就是说。我在页面上的一个url显示的是aptech/\d*.html
而实际上他是在定位到了abc.jsp?name=$1上面的
这里的$1就标示是第一个正则表达式的值
而实际上他会重新的定位到index.jsp上面去
在这里我们要看些正则表达式参考
:规定前导字符必须再元字符前面出现一次或多次
 :规定前导字符必须在元字符前面出现0次或连续多次
 :规定前导字符必须在元字符前面出现0次或1
 \s :用于匹配单个空格符,包括TAB键和换行符
 \S :用于匹配除单个空格符以外的所有字符
 \d :用于匹配0-9的数字
 \D :匹配任何的非数字,等价于[^0-9]
 
\w :用于匹配字符,数字,下划线
 \W :用于匹配所有与w不匹配的字符
 :用于除换行符以外的所有字符
模式:
 
可以精确指定模式在匹配对象中出现的频率
 {n} :这里的n是一个正整数.匹配前面的N个字符
 {n,} :这里的n是一个正整数,匹配前面的至少n个字符
 {n,m} :这里的nm都是正整数.匹配至少n个最多m个前面的字符
定位符:
 
^ :规定匹配模式必须出现在目标字符串的开头
 $ :规定匹配模式必须出现在目标字符串的结尾
 \b :规定匹配模式必须出现在目标字符串的开头或者结尾的2个边界之一
 \B :规定匹配模式必须出现在目标字符串的开头和结尾2个边界之内
中括号表达式:
 
若要创建匹配字符组的一个列表,在方括号内放置一个或者多个单个字符.普通字符在中括号内表示其本身
 [a-z][A-Z][0-9]
运算符:
 |
(),(?:),(?=),[]
否定符:
 [^]:
规定目标对象中不能存在模式中所规定的字符串
运算顺序:
 从左到右
 
 
空字符串 (&$+)

    分享: 收藏到CSDN 收藏到javaeye 收藏到博客园 收藏&分享
  • 浏览 (319)
  • 评论 (0)
  • 发表于 2010-05-27 15:29
    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    无人投票

相关博客:


评论


发表评论

关注此文的人们还关注