1 下载 ja r:
官方地址: http://tuckey.org/urlrewrite/

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

2 配置 web.xml:

<!-- 加到任何servlet映射的顶部,不然可能有些路径不能被过滤到http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html-->
<filter><filter-name>UrlRewriteFilter</filter-name><filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class><!--设备文件重加载间隔 (0默示随时加载, -1默示不重加载, 默认-1)--><init-param><param-name>confReloadCheckInterval</param-name><param-value>60</param-value></init-param><!-- 自定义配置文件的路径,是相对context的路径,(默认位置 /WEB-INF/urlrewrite.xml)--><init-param><param-name>confPath</param-name><param-value>/WEB-INF/urlrewrite.xml</param-value></init-param><!--设置日志级别(将被记录到日志中)可以为: TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL, log4j,commons, slf4j,比如 sysout:DEBUG(设置到控制台调试输出级别)(默认级别 WARN) -->init-param><param-name>logLevel</param-name><param-value>DEBUG</param-value></init-param>
</filter>
<filter-mapping><filter-name>UrlRewriteFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher>
</filter-mapping>
<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><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 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite><rule><!--http://localhost:8080/ssh_test/user/findAllUser.html=>http://localhost:8080/ssh_test/user/findAllUser.action--><from>^/([A-Za-z0-9]+)/([A-Za-z0-9]+)\.html</from><to>/$1/$2.action</to></rule><outbound-rule><!--http://localhost:8080/ssh_test/user/findAllUser.action=>http://localhost:8080/ssh_test/user/findAllUser.html--><from>/([A-Za-z0-9]+)/([A-Za-z0-9]+)\.action$</from><to>/$1/$2.html</to></outbound-rule><rule><!--http://localhost:8080/ssh_test/user/updateUser/id-14.html=>http://localhost:8080/ssh_test/user/updateUser.action?id=13--><from>^/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)-([A-Za-z0-9]+)\.html$</from><to>/$1/$2.action?$3=$4</to></rule><rule><!--http://localhost:8080/ssh_test/user/updateUser.action?id=3=>http://localhost:8080/ssh_test/user/updateUser/id-3.html--><from>^/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)-([A-Za-z0-9]+)\.html$</from><to>/$1/$2.action?$3=$4</to></rule></urlrewrite>


注:rule 是 url 重写规则,from 是显示出来的地址,to 是映射的实际地址。示例:<a
href="http://localhost:8080/douwanplay/user/testUrlRewrite.htm"> Go </a>,表示实
际请求为 user!testUrlRewrite.do
$1 是重写参数,它的值与 from 中的正则表达式是一一对应,可以为多个,()里是匹配的正
则表达式, 在正则表达式^指定字符的串开始,$为指定结束(form 一个括号--对应 to 的
一个$参数)
outbound-rule 是反重写配置,即实际动态连接经其映射之后在页面显示为静态连接模
式。示例:<a href="<c:url value="/user!testUrlRewrite.do" />">NO</a>,实际页面
显示为 user/testUrlRewrite.htm。参数配置同 rule, <c:url /> 为 <%@ taglib
prefix="c" uri="http:// Java .sun.com/jsp/jstl/core" %>
1、配 struts2 拦截器的时候需要加:
<dispatcher>REQUEST</dispatcher> //不加这个页面不能使用 struts2 标签
<dispatcher>FORWARD</dispatcher> //转发必须
<dispatcher>INCLUDE</dispatcher>
2、配置 web.xml 的时候,rewrite 一定要在 strtus2 的上面。

小结:
urlrewrite 是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向。
rule 结点中 from 的规则默认使用的是正则表达式来匹配的,
当用户访问服务器时的 URL 会与该配置相比较,如果符合规则就会按照下面 to 结点中的配
置对其进行跳转,其默认是 forward 跳转。
简单分析一下上面的正则表达式“^/vweb/view/index-([0-9]+)” : “” 匹配输入字符
串的开始位置 “ [Math Processing Error] ”匹配输入字符串的结束位置
“\”转义字符,表示后面的“-”不具有特殊含义,只是一个简单的字符串。
“([0-9]+)”:
“[0-9]”:由 0 到 9 中任何数据组成的字符串
“+”匹配 1 或多个正好在它之前的那个字符。


URL 重写使用步骤相关推荐

  1. [原创 URL重写步骤

    做个新闻系统,URL重写每个新闻 1.  Web.config 的配置 <httpModules>             <add type="URLRewriter.M ...

  2. URL重写步骤 【有用】

    做个新闻系统,URL重写每个新闻 1.  Web.config 的配置 <httpModules>             <add type="URLRewriter.M ...

  3. ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI

    URL重写已经有很多的方法,但是多数都有一个缺点,就是不支持无扩展名的网页.微软提供的方法需要在根目录里面建立jyk的文件夹,然后再建立一个default.aspx的文件,如果您有100名会员的话,这 ...

  4. 在 ASP.NET 中执行 URL 重写

    在 ASP.NET 中执行 URL 重写 发布日期: 8/23/2004 | 更新日期: 8/23/2004 Scott Mitchell 4GuysFromRolla.com 适用范围: Micro ...

  5. URL重写:RewriteCond指令与RewriteRule 指令格式(转)

    Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范.平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等.本文将针对mod_rewrite和URL匹配的技术细 ...

  6. 用自定义IHttpModule实现URL重写

    在本人拙作<ASP.NET夜话>第十二章中探讨过ASP.NET底层运行机制的问题,在该书中本人也讲到过了解一些ASP.NET的低层机制对于我们灵活控制ASP.NET有很大帮助,在该书中本人 ...

  7. Nginx URL 重写

    一.URL重写介绍 和apache等web服务软件一样,rewrite的主要功能是实现URL地址的重定向. Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规 ...

  8. UrlRewrite(Url重写技术)

    ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置------转载 ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置 核心提示:大家一定经常在网络上看到很多网站的 ...

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

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

最新文章

  1. NOIP2018初赛提高组复习提纲(By HGOI LJC)
  2. 人人都可以做深度学习应用:入门篇
  3. concurrent: ThreadPoolExecutor 用法
  4. 第67课 选择排序 例67.1 《小学生C++编程入门》
  5. 将CSV和SQL数据加载到Pandas中
  6. 二、2.4版本之前的apache的安装
  7. python不会英语不会数学怎么自学-英语和数学都不好,但是我想学Python编程可以吗?...
  8. C++进阶教程之动态内存
  9. 搭建测试环境、面向对象
  10. ubuntu 16.04: 安装NVIDIA驱动,CUDA,CUDNN
  11. 学会自己测天气系列八卦基础 01
  12. 《走遍美国》MP3 共78集下载地址
  13. 什么是FBO (Frame Buffer Object)
  14. 几个Android云测试
  15. 说故我在-跟老友记练口语
  16. 宝马计划明年推出智能助手,将其添加到车辆中
  17. CSS基础班笔记(二)
  18. 广州Java培训,疯狂Java如何?谈谈疯狂Java,谈谈李刚
  19. 时间都去哪儿了——2014年总结
  20. c语言可乐,★★PC可乐吧系列教程之 -- QQ用户小心!C语言实现QQ密码大盗★★

热门文章

  1. 如何在你的WordPress网站上添加成本计算器
  2. 基于SSM的宠物管理系统
  3. 如何卸载SAS 9.4
  4. 【解决方案】HIKSDK/大华SDK/Ehome协议视频智能分析平台EasyCVR在文物古建筑智慧防火场景的应用
  5. Facebook时间序列预测算法模型-prophet
  6. MOOC网站访问日志分析
  7. ffmpeg的安装与使用
  8. java 裁剪网格纸_百度裁减网格纸
  9. java实现文本转换器
  10. ChatGPT带你一起了解C语言中的fclose()