jsp使用urlrewrite实现伪静态

首先,要使用urlrewrite需要导入jar包

官方下载地址:

①http://tuckey.org/urlrewrite/

②http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html

 

如果两个链接都进不去我这里上传有。

 

新建一个xml文件,名字为urlrewrite.xml,并将他放到WEB-INF目录下。注意,不是放到源文件包里面。

 

在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-pattern>/*</url-pattern>
	<dispatcher>REQUEST</dispatcher>
	<dispatcher>FORWARD</dispatcher>
</filter-mapping>

 

与struts2结合会出现404错误,解决方法,将下面两段代码加入struts2过滤器

<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
 

如下:

   <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

 

接下来修改  urlrewrite.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"   
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">


<urlrewrite>
	<rule>
		<from>^/test.html$</from>
		<to>/test.jsp</to>
	</rule>
</urlrewrite>
 

简单的配置一下,新建一个test.jsp页面,在index.jsp添加一个链接,链接到test.html

 

当点击的时候,地址栏显示的是test.html,但实际上访问的是test.jsp

 

当然,这只是最简单的配置方法。

 

比如说我想要在跳转的同时传递参数。

只需要修改这里,或者加。

 

比如说我想要跳转到 test.jsp ,并传递参数 id=5 、username=aa

<rule>
	<from>^/([a-z]+)/([0-9]+)/([a-z]).html$</from>
	<to>/$1.jsp?id=$2&amp;username=$3</to>
</rule>

 

$1代表的是第一个括号的正则 ,即  ([a-z]+),在xml里面 & 这个符号是不被识别的,因此需要转换编码,即 &amp;

 

如果是跳转 servlet 貌似要先加个目录,反正我没加的时候从来没有成功过,报一堆的错误,无意加了个目录就可以用了,当时我就无语了。。

 

<rule>
	<from>^/aa/([A-Za-z]+).html$</from>
	<to>/$1servlet?doAction=aa</to>
</rule>

 

 

^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^/w+$ //匹配由数字、26个英文字母或者下划线组成的字符串

 

这些是 urlrewrite 的正则表达式。很容易理解的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值