urlrewriter实现jsp页面的伪静态化

urlrewriter.jar包的官方下载地址:http://tuckey.org/urlrewrite/

若是下载不了,可以通过http://download.csdn.net/detail/liunian02050328/6470639下载

使用urlrewrite的优点:

1.为网站开发提供良好的搜索。

2.安全性,隐藏了原有的开发技术,网站的移植很强。

3.完全静态化为html页面,规范化

使用介绍:

1.将如下代码加到项目的web.xml中

[html]  view plain copy print ?
  1. <ilter>   
  2.   
  3.   <filter-name>UrlRewriteFilter</filter-name>   
  4.   
  5.    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>   
  6.   
  7.   <init-param>   
  8.   
  9.     <param-name>logLevel</param-name>   
  10.   
  11.      <param-value>WARN</param-value>   
  12.   
  13.   </init-param>   
  14.   
  15.  </filter>   
  16.   
  17.  <filter-mapping>   
  18.   
  19.    <filter-name>UrlRewriteFilter</filter-name>   
  20.   
  21.    <url-pattern>/*</url-pattern>  </filter-mapping>  

2.配置urlrewrite.xml文件来实现url静态化(可以在网站上http://tuckey.org/urlrewrite/找到)

(1)普通url静态化

例如:要把http://localhost/prjtest/user/list.jsp转换成http://localhost/prjtest/user/list.html

这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置:

<rule>

   <from>/user/list.html</from> 

   <to>/user/list.jsp</to>

 </rule>

当请求/user/list.html这个页面时,实际上相当于请求/user/list.jsp页面

<rule>
  <from>/index.html</from>
  <to type="forward">/index.action</to>
 </rule>

当请求index.html时直接转到index.action,实现请求的伪静态化。

(2)带参数的url静态化 (多参数的问题)

例如:要把http://localhost:8080/test/user/get.jsp?id=1&name=admin转换成

       http://localhost:8080/test/get1_admin.html

在urlrewrite.xml中这样配置:

1 <rule>

2   <from>/get([0-9]+)_([a-z]+).html$</from>

3   <to>/user/get.jsp?id=$1&name=$2</to>

4 </rule>

//这里是用([a-z])+ 正则表达式表示所有的字母

用([0-9])+表示所有的数字  

当请求/get1_admin.html这个页面时,实际上相当于请求/user/get.jsp?id=1&name=admin页面,在servlet的跳转要这样写(id,name为变量):

response.sendRedirect("./user/view/"+ id +"_"+ name +".html");

注意:配置文件中用"_"来代替"&"。

(个人认为这种伪静态化相对于action的形式是比较安全的,但是也加重了服务器的负载,也就是一次请求,先是静态的请求,然后对应的是一次转向,间接的加重了服务器的负荷)

转自http://blog.csdn.net/liunian02050328/article/details/13508861

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值