Urlrewrite 

地址重写,用户得到的全部都是经过处理后的URL地址

过滤用户的所有请求,符合规则的便对其进行重定向

rule结点中from默认使用的正则表达式来匹配,若用户访问服务器时的URL符合规则就跳转至to结点中的配置,默认是forward跳转。

<rule>:自定义匹配规则

<note>:注释,解释标签

<from>:显示的地址,要用()把要匹配的内容括起来才能获取,不然java会抛出异常

<to type="">:匹配成功后的实际地址,可以为null,相当于未调用chain.doFilter,type有两个值,forward (转发,参数不丢失),redirect (重定向,地址栏显示的地址就是目标真实地址)

注意:

$1:匹配中的第一个正则表达式的字符串的值,$2,$3,$4....也是如此

如果要用&符号,需要用&amp;代替

urlrewrite.xml是utf-8,note标签内的中文也一定是要utf-8.

UrlRewriteFilter 最好是配置在web.xml的前面filter上,不然有可能对有些url转变失去作用.

urlrewrite有仅只有一个,rule至少一个.

正则表达式^指定字符的串开始,$为指定结束,对于中文参数要使用(.*)作为参数转义.

 “+”匹配1或多个正好在它之前的那个字符

如果使用<outbound-rule>要记得代码中的url都是编码过的;

contex 是非常重要的, 如果有一个应用的context 是”/myapp”,并且你的请求是”/myapp/somefolder/somepage.jsp”,
容器交给UrlRewriteFilter
的url会是”/somefolder/somepage.jsp”, 这可能难以理解,但是在你的<rule>和<condition>中不要包含context path, 它是容器负责处理的.

应用通配符,通配符匹配引擎可以替代正则表达式, 在<condition>和<rule>中设置match-type是wildcard用以开启支持通配符.(或者设置default-match-type)

例如:

/big/url/*匹配/big/url/abc.html但是不匹配/big/url/abc/dir/或/big/url/abc/

/big/url/**匹配/big/url/abc.html,/big/url/abc/dir/和/big/url/abc/

也可以和正则的替换一样, 每个*代表一个参数,在<set>和<to>中用$N的方式使用

优点

(1)提高安全性 :有效的避免一些参数名、ID等完全暴露在用户面前,若用户输入不符合规则会返回404或错误页面

(2)美化URL :去除如*.do之类的后缀名、长参数串等

使用步骤:

1、下载urlrewritefilter-4.0.3.jar,加入到工程lib目录下。

2、配置web.xml

<!-- 加到任何servlet映射的顶部,不然可能有些路径不能被过滤到-->
<filter>
  <filter-name>UrlRewriteFilter</filter-name>
  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
</filter-mapping>

3 、配置urlrewrite.xml

添加urlrewrite.xml 到工程的WEB-INF目录下。
<?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>
<note>
The rule means that requests to /test/status/ will be redirected to /rewrite-status the url will be rewritten.
</note>
<from>^/vweb/view/index\-([0-9]+)$</from>
<to>/vweb/view/index.shtml?_vwebid=$1&amp;type=show</to>
</rule>
</urlrewrite>
示例:
<rule>
<from>^/([a-z]+)/([a-z]+)/([a-z]+)$</from>
<to>/$1.do?method=$2&amp;uuid=$3</to>
</rule>

在index.jsp中添加链接:<a href="process/show/index">跳转</a>

地址栏url:http://localhost/urlrewrite/process/show/index,

实际路径:http://localhost/urlrewrite/process.do?method=show&uuid=index

Urlrewrite的更多相关文章

  1. seo优化urlrewrite伪静态技术

    1.下载urlrewrite-3.2.0.jar 2.在WEB-INF下增加urlrewrite.xml <?xml version="1.0" encoding=" ...

  2. springMVC学习之url重写:urlrewrite with tuckey UrlRewriteFilter

    在开发网站时地址栏的一些信息是我们不希望让客户看到,所以在开发时候就会涉及到url重写的问题. 下面介绍一种常用的url地址重写的方法. 1.利用maven下载相关jar文件,pom文件配置如下: & ...

  3. 【转】伪静态URLRewrite学习笔记

    UrlRewrite: UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite.将我们的动态网页地址转化为静态的地址,如ht ...

  4. UrlRewrite(URL重写)--ASP.NET中的实现

    概述 今天看了下URL重写的实现,主要看的是MS 的URL Rewrite. URL重写的优点有:更友好的URL,支持老版本的URL URL重写的缺点有:最主要的缺点是性能低下,因为如果要支持无后缀的 ...

  5. http://www.iis.net/downloads/microsoft/url-rewrite

    http://www.iis.net/downloads/microsoft/url-rewrite iis  url重写模块.官方下载

  6. 伪静态URLRewrite学习笔记

    UrlRewrite: UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite.将我们的动态网页地址转化为静态的地址,如ht ...

  7. paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换

    paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换 #---KEYWORD #-正则表达式 正则表达式 表示 非指定字符串开头的正则 排除指定目录.. 作者 老 ...

  8. paip.基于urlrewrite的反向代理以及内容改写

    paip.基于urlrewrite的反向代理以及内容改写 ---------反向代理 RewriteCond %{REQUEST_URI} !=/process.php RewriteRule  ^( ...

  9. urlrewrite伪静态 及多参数传递-附正则表达式语法 [轉]

    首先 加载 urlrewrite包 配置web.xml [list] [*] <error-page> [*]             <error-code>404</ ...

  10. ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

    核心提示:大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有 ...

随机推荐

  1. Hadoop3.2.0+Centos7三节点完全分布式安装配置

    一.环境准备 ①准备三台虚拟机,配置静态IP ②先修改主机名(每个节点统一命名规范) vim /etc/hostname master #重启生效 配置DNS每个节点 vim /etc/hosts 1 ...

  2. LVS之2---基于LVS负载均衡集群架构

    LVS之2---基于LVS负载均衡集群架构实现 目录 LVS之2---基于LVS负载均衡集群架构实现 ipvsadm software package Options 常用命令 保存及重载规则 内存映 ...

  3. Redis的批量操作是什么?怎么实现的延时队列?以及订阅模式、LRU。

    前言 这次的内容是我自己为了总结Redis知识而扩充的,上一篇其实已经总结了几点知识了,但是Redis的强大,以及适用范围之广可不是单单一篇博文就能总结清的.所以这次准备继续总结,因为第一个问题,Re ...

  4. ASP.NET Core路由中间件[1]: 终结点与URL的映射

    目录 一.路由注册 二.设置内联约束 三.默认路由参数 四.特殊的路由参数 借助路由系统提供的请求URL模式与对应终结点(Endpoint)之间的映射关系,我们可以将具有相同URL模式的请求分发给应用 ...

  5. TurtleBot3 Waffle (tx2版华夫)(7)底盘测试

    说明:opencr本身带有自测底盘功能,通过按opencr的sw1和sw2来自检底盘是否正确安装和运行: 7.1.前进测试 1)测试前,先把小车架空,轮子不要着地: 2)接好电源后,打开opencr的 ...

  6. .Net 5中Windows Forms运行时的新功能(翻译)

    本文翻译自Igor的文章,原文地址:https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-runtime-in-net-5- ...

  7. openbmc编译错误汇总,持续更新,建议收藏

    本文汇总自己在编译openbmc时遇到的一些问题及解决思路,希望对有兴趣研究openbmc的同学有一些帮助. 项目地址:https://github.com/openbmc/openbmc 编译步骤: ...

  8. 洛谷P4848 崂山白花蛇草水 权值线段树+KDtree

    题目描述 神犇 \(Aleph\) 在 \(SDOI\ Round2\) 前立了一个 \(flag\):如果进了省队,就现场直播喝崂山白花蛇草水.凭借着神犇 \(Aleph\) 的实力,他轻松地进了山 ...

  9. SQL Server 数据库还原进度查看

    SQL Server 数据库还原进度查看 关键字:数据库,还原,进度,查看 文档说明: 本文档受某实际需求启发,某约500G大小数据库还原,由于对应服务器性能较差(内存仅4G且可用内存仅2.8G),数 ...

  10. 你知道 react-color 的实现原理吗

    一.前言 ReactColor 是一个优秀的 React 颜色选择器组件,官方给了多种布局供开发者选择. 笔者常用的主题为 Sketch,这种主题涵盖了颜色面板.推荐色块.RGB颜色输入等功能,比较完 ...