URLRewrite实现url地址伪静态化

一般在java项目开发中,我们采用struts或者spring作为MVC框架,这两种框架在使用上都是通过配置文件或注解或约定规则来根据url匹配到相应的java类方法,一般情况下,我们采用包名+类名+方法名的形式访问java文件,这样使得我们在查找问题时,能够快速通过url地址找到对应的java类文件,而参数则通过get或者post方式进行传递处理,这种实现方式在一般的后台系统中,特别是业务非常复杂,代码量很大的时候,给我们带来了很大的方便。但如果是面向普通大众客户的web界面,这种实现方式则有比较大的问题。因为页面内容是根据访问参数动态生成,这样则搜索引擎不能抓取,而且也不能进行缓存,那该如何做呢?我们引入了 URLRewrite组件,进行页面的伪静态化,当然也可以更进一步实现真正静态化。

通过URLRewrite实现伪静态化,其实就是对很多大量用户经常访问某些页面,并且页面内容对所有人显示基本上一样的页面进行处理,如一个新闻网站,新闻内容是后台人员不断进行录入的,但前台界面展示时一般采用/20130104/0001.html这样的形式,可以想象的到,不可能每个新闻编辑人员会去直接编写这个html文件,也就是说0001.html文件其实是根据编辑人员录入的内容动态生成的,好了,现在来介绍下如何使用URLRewrite

1、         下载jar包,或者直接配置POM文件,我这里选择的是4.0.3版本。

   <dependency>

    <groupId>org.tuckey</groupId>

    <artifactId>urlrewritefilter</artifactId>

    <version>4.0.3</version>

</dependency>

2、          WebRoot/WEB-INF/目录下,新建urlrewrite.xml配置文件,该文件用于定义url转换的链接。

3、          web.xml文件中加入以下:

 

    <filter>  

            <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 -->  

        <url-pattern>/*</url-pattern>  

    </filter-mapping> 

完成了以上配置,及完成了urlrewrite的主体配置,但这个时候我们还没有配置映射关系,所有请求的url和原来还未发生任何变化,下面就来具体的url转换。

1、普通url转换,如访问user/list.html实际上需要访问的是/user/list.jsp即在urlrewrite.xml中这样配置:

1 <rule>

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

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

4 </rule>

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

 

2、带参数的url静态化

例如:要把http//localhost/prjtest/user/view.jsp?cid=1&cname=admin转换成

       http//localhost/prjtest/user/view/1_admin.html

urlrewrite.xml中这样配置:

1 <rule>

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

3   <to>/user/view.jsp?cid=$1&cname=$2</to>

4 </rule>

当请求/user/view/1_admin.html这个页面时,实际上相当于请求/user/list.jsp?cid=1&cname=admin页面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值