appfuse中的UrlRewrite

(转自: http://www.blogjava.net/liuwentao253/archive/2006/08/31/66855.html
appfuse中使用了UrlRewrite.实现了url的重写,这样有什么用处呢?上网搜了一把,大体上有以下好处:

1、满足搜索引擎的要求
某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在用户搜索到。用UrlRewrite技术你可以把 http://server/news.asp?id=111 变成 http://server/news/111.htm 这样他们就会被搜索引擎收录了。google虽然可以抓取动态页面,但是google对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。
 
2、隐藏技术实现,提高网站的移植性
每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用UrlRewrite技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。

3、满足美感的要求
对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。形如 http://server/news.asp?channel=3&id=111 的网页地址,肯定是上不了完美主义者的法眼的,用UrlRewrite技术,你可以把他变成 http://server/news/3/111.htm
在应用中怎样集成它呢?看看appfuse中的实现方式。

在appfuse的web.xml声明文件中有下面的类似声明:

None.gif < filter >
None.gif        
< filter - name > rewriteFilter </ filter - name >
None.gif        
< filter - class > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </ filter - class >
None.gif        
< init - param >
None.gif            
< param - name > logLevel </ param - name >
None.gif            
< param - value > commons </ param - value >
None.gif        
</ init - param >
None.gif
</ filter >

None.gif < filter - mapping >
None.gif        
< filter - name > rewriteFilter </ filter - name >
ExpandedBlockStart.gifContractedBlock.gif        
< url - pattern > /**/ /*</url-pattern>
InBlock.gif</filter-mapping>


它所应用到的包存放在lib下的

None.gif urlrewrite - 3.0 - beta.jar

它和以上的两部分,以及

None.gif / web - inf / urlrewrite.xml

构成了对url地址的美化

打开这个文件,我们可以看到以下的声明:

None.gif <? xml version = " 1.0 "  encoding = " utf-8 " ?>
None.gif
<! DOCTYPE urlrewrite PUBLIC  " -//tuckey.org//DTD UrlRewrite 3.0//EN "
None.gif    
" http://tuckey.org/res/dtds/urlrewrite3.0.dtd " >
None.gif
None.gif
<!--  https: // urlrewrite.dev.java.net/manual/3.0 -->
None.gif
< urlrewrite >
None.gif    
< rule >
None.gif        
< from >^/ user / (. * ).html$ </ from >
None.gif        
< to type = " forward " >/ editUser.html\ ? username = $ 1 </ to >
None.gif    
</ rule >
None.gif
</ urlrewrite >


这样系统就完成了url地址的editUser.html?username=****的美化

如将
http://localhost/aaa/bbb.jsp?id=99&name=abc
表现为:
http://localhost/aaa/bbb/99_abc.html
配置如下:

None.gif < rule >  
None.gif    
< from >
None.gif        
/ aaa / bbb / ([ 0 - 9 ] + )_([a - z] + ).html
None.gif    
</ from >  
None.gif
None.gif    
< to >
None.gif        
/ .. / aaa / bbb.jsp ? id = $ 1 & name = $ 2
None.gif    
</ to >  
None.gif
</ rule >  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值