urlrewriter实现jsp页面的伪静态化

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

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

使用urlrewrite的优点:

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

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

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

使用介绍:

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

<ilter> 

  <filter-name>UrlRewriteFilter</filter-name> 

   <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 

  <init-param> 

    <param-name>logLevel</param-name> 

     <param-value>WARN</param-value> 

  </init-param> 

 </filter> 

 <filter-mapping> 

   <filter-name>UrlRewriteFilter</filter-name> 

   <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的形式是比较安全的,但是也加重了服务器的负载,也就是一次请求,先是静态的请求,然后对应的是一次转向,间接的加重了服务器的负荷)

 

 


 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值