urlrewrite(伪静态技术运用)

什么是伪静态?
1.是通过正则映射把本是动态的页面转成 看起来是静态的页面
为什么用伪静态?
1.浏览器不收录带'?' url
2.打开一个页面后(url 完全相同),再次打开会很快。
因为转换页面是在内存中完成的,如果再次打开同一个页面,就不会再转换,而是直接在内存中读取。
现在每转一个页面都换 url, 内存使用情况,自己考虑一下。。
3.cup 资源占用少(参考上一条)
4.看起来比较统一,能隐藏开发使用的语言
什么情况下使用伪静态?
1.小型网站和特别在意浏览器收录的网站才使用(内容不经常换,又希望别人通过 搜索引擎能找到)
2.门户网站选择性的用,社区能不用就不用

urlrewrite顾名思义,就是对URL进行重写,用户得到的全部都是经过处理后的URL地址,这样做我觉得好处有三:

一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多 
二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL 
三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息 
使用urlrewrite的步骤如下: 

首页,访问其官网:http://tuckey.org/urlrewrite/,我下载的是最新的目前还处于Beta版的urlrewritefilter-4.0.3,下载后将其中的urlrewrite-4.0.3.jar扔到需使用此功能项目的lib目录中去 
其次,在web.xml中加入如下配置: 
[html]  view plain copy
  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>WARN</param-value>   
  7.      </init-param>   
  8.     </filter>   
  9.     <filter-mapping>   
  10.         <filter-name>UrlRewriteFilter</filter-name>   
  11.         <url-pattern>/*</url-pattern>   
  12.         <dispatcher>REQUEST</dispatcher>   
  13.         <dispatcher>FORWARD</dispatcher>   
  14.     </filter-mapping>   
其实,urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向,具体的配置参数的使用方法见官方文档:http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html

配置好web.xml后将下载的urlrewritefilter-3.2.0中的urlrewrite.xml配置文件放在WEB-INF目录下,这样在使用urlrewritefilter时它便自动到该目录下读取相关的配置了

然后再地址栏输入:http://localhost:8080/Java_Solr/rewrite-status

我配置了个简单的,代码如下: 

[html]  view plain copy
  1. <rule>   
  2. <from>/world/([a-z]+)/([0-9]+)</from>   
  3. <to>/index.jsp?uname=$1&id=$2</to>   
  4. </rule>   

 输入:http://localhost:8080/Java_Solr/world/leroy/23;   

[html]  view plain copy
  1. <rule>  
  2. <from>/(.*).html</from>  
  3. <to>/index.jsp?id=$1</to>  
  4. </rule>  

输入:http://localhost:8080/Java_Solr/1.html;  

[html]  view plain copy
  1. <rule>    
  2.     <from>^/(.*).html$</from>    
  3.     <to>/test1/$1.jsp</to>    
  4. </rule>   

[html]  view plain copy
  1. <%  
  2.     out.print("<h3> the value is:"+request.getParameter("uname")+"  "+request.getParameter("id")+"</h3>");  
  3.  %>  


rule结点中form的规则默认使用的是正则表达式来匹配的,当用户访问服务器时的URL会与该配置相比较,如果符合规则就会按照下面to结点中的配置对其进行跳转,其默认是forward跳转,具体配置可见官网文档。 

常用的&要用 &amp;来表示。$1,$2代表与你配置正规表达式>/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward"
<from></from>写上你自己定义的访问地址,通常采用正则表达式的写法;<to type="forward></to>就是实际的访问地址。
比如我们实际的访问地址是: http://www.phome.asia/forum/list.action?id=16931&amp;page=2
而我们想把它重写为:http://www.phome.asia/forum/thread/16931.html?page=2。这样看起来比我们实际的要好看的多。


rule是url重写规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,可以为多个,()里是匹配的正则表达式。由此即设定了url重写。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值