urlrewrite重写URL

jar包下载

URL重写可以将我们访问的jsp页面用html来访问,其他的好处和劣出这里就不多说了,直接上教程。

首先要下载jar包:官网地址:http://tuckey.org/urlrewrite/

环境搭建

将下载后的jar包添加到web项目后进行配置文件的修改

web.xml文件修改

在web.xml文件中添加

  <filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
   <init-param>
      <param-name>confPath</param-name>
      <param-value>/WEB-INF/urlrewrite.xml</param-value>  <!--urlrewrite配置文件的路径,一般在所示目录-->
    </init-param>
    <init-param>
            <param-name>logLevel</param-name>
             <!-- 设置日志级别(将被记录到日志中)
     		  可以为: TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL, log4j, commons, slf4j,
      		 比如 sysout:DEBUG(设置到控制台调试输出级别) 
      		 (默认级别 WARN) -->
            <param-value>sysout:DEBUG</param-value>
        </init-param>
  </filter>
  <filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>	<!-- 处理转发 -->
    <dispatcher>REQUEST</dispatcher>	<!-- 处理重定向 -->
  </filter-mapping>

同时需要注意配置过滤器的顺序:字符编码过滤器,hibernate open session in view 过滤器,Urlrewrite过滤器,struts过滤器。

urlrewrite.xml配置文件添加

添加一个urlrewrite.xml配置文件放在WEB-INF/目录下(和web.xml同一级目录)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
       "http://tuckey.org/res/dtds/urlrewrite3.1.dtd">
<urlrewrite>
    <rule>
       <from>^/index.html$</from>
       <to>/index.jsp</to>
   </rule>
   <rule>
       <from>^/Test-([a-z]+)-([a-z]+).html$</from>
       <run></run>
       <to>/Test?pp=$1</to>
   </rule>
</urlrewrite>

当访问index.html时,会匹配<form>里的index.html,然后去请求<to>中的index.jsp页面,而地址栏是显示index.html。

urlrewrite是采用正则表达式匹配的,第二个<rlue>中可以匹配 Test-aa-ab.html,Test-aa-aa.html,Test-cc-cd.html等,都去请求Test?pp=$1,其中$1是匹配到的第1个参数,如果是Test-aa-ab.html,则请求Test?pp=aa

Struts2 使用urlrewrite

Struts2 使用urlrewrite时需要在Struts2 过滤器中添加如下

     <filter>
        <filter-name>action2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>action2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher> <!--新增-->
        <dispatcher>REQUEST</dispatcher> <!--新增-->
   </filter-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值