上午开发小组开常规的开发进度会议,在讨论使用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>
在WEB.XML中进行过滤器的配置
<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>
启动容器,输入项目路径 http://localhost:8080/index.html,输出如下HTML代码
<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的!
分享到:
相关推荐
Intelligencia.UrlRewriter 使用方法 简单易懂.一看就会.哈
UrlReWriter组件,UrlReWriter.dll。
URLRewriter.rar文件 URLRewriter.dll
第一种方法需引用UrlRewriter.dll,请参考Web1.config部署 第二种方法需引用Intelligencia.UrlRewriter.dll,请参考Web.config部署 Bin文件夹里面有三个dll,需添加引用,其中特别说明的是UrlRewriter.dll,这个dll在...
NULL 博文链接:https://zhouxianglh.iteye.com/blog/899534
urlrewriter是一个第三方的组件,用于将项目的中的链接地址重写,确保安全。这里面包含了一个官网中的资源和一个Java项目案例。
URLReWriter,.net里的url重写
本资源经过测试,并在本机测试通过,主要是针对IIS7的配置,里面有详细说明。
UrlRewriter - a rule-based URL Rewriter for .NET. 1. Open your web project, or create a new one. 2. Add a reference to the Intelligencia.UrlRewriter assembly. 3. Open the web.config file. 4. Add ...
UrlRewriter 实现伪静态
asp.net url rewriter, bin 里有UrlRewriter dll, 样例是用framework 4.5 写的, 这个适合webform 形式的url重写
asp.net中实现urlrewriter
UrlRewriter2_51
URLRewriter.dll 文件下载,用于配置伪静态
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> ~/Index.html</LookFor> ~/Index.aspx ~/Index/t_([0-9]*)/ID_([0-9]*).html$...
UrlRewriter伪静态文件库
先导入URLRewriter.dll 然后Web.config修改配置 <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> ~/news/(.[0-9]*)\....