urlrewriter使用时请注意

上午开发小组开常规的开发进度会议,在讨论使用urlrewriter在项目中担任URL重写的时候有点争议,我坚持使用urlrewriter重写URL需要配合JSTL标签中的c:url一起使用,才能真正达到重写所有页面上的URL的目的,一个同事说可以不需要使用这个标签也可以达到重写的目的,为了解决这个争议,决定写一个DEMO来进行验证我的说法。首先新建一个项目,导入必要的依赖。
 
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>3.1.0</version>
</dependency>


[color=red]在WEB.XML中进行过滤器的配置[/color]
 <filter>
<filter-name>rewriteFilter</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>
</init-param>
</filter>
<filter-mapping>
<filter-name>rewriteFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>rewriteFilter</filter-name>
<url-pattern>*.html</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>


在WEB-INF下新建一个urlrewrite.xml文件[color=red][/color]



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
<rule>
<from>/index.html$</from>
<to>/index.jsp</to>
</rule>
<outbound-rule>
<from>/index.jsp</from>
<to>/index.html</to>
</outbound-rule>
</urlrewrite>


这个主要是测试用的,现在在根目录下新建一个index.jsp页面。代码如下


<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<a href="index.jsp">无标签的URL输出首页地址</a>
<br/>
<br/>
<br/>
<br/>
<a href="<c:url value='/index.jsp' />">有标签的URL输出首页地址</a>
</body>
</html>



[color=red]启动容器,输入项目路径 http://localhost:8080/index.html,输出如下HTML代码[/color]



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<a href="index.jsp">无标签的URL输出首页地址</a>
<br/>
<br/>
<br/>
<br/>
<a href="/index.html;jsessionid=62408E24FEA0F75AFB9B0CACA9314006">有标签的URL输出首页地址</a>

</body>
</html>



综上所述,urlrewriter如果要重写成功,要把需要重写的URL用标签输出,直接输出URL是不会重写URL的!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值