urlrewrite与struts2结合使用配置
来源:互联网 发布:ipad点菜软件免费 编辑:程序博客网 时间:2024/06/06 04:51
本文侧重在urlrewrite与struts2的结合配置时需要注意的地方,重点不在urlrewrite规则的具体配置。
如果对urlrewrite的配置想进行更深入的了解解,请查看下面链接
Java-UrlRewrite中文官方文档
下面直接进入配置说明:
1、web.xml
在配置过滤器的时候,注意配置顺序,Struts2的过滤器要配置在UrlRewriteFilter过滤器后面。
什么时候配置以下三个 ?
<dispatcher>REQUEST</dispatcher> 默认配置,即不进行任何配置是使用的方式,过滤所有的非转发请求。
<dispatcher>FORWARD</dispatcher> 对FORWARD转发的请求进行过滤,比如在代码中有使用FORWARD转发时会进行二次过滤(因为第一次请求也会被过滤)。
<dispatcher>INCLUDE</dispatcher> 与FORWARD非常类似,惟一的不同在于:利用include将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Servlet。
所以如果你需要对经过FORWARD转发后的请求URL(例如要对经过Struts2转发后的URL进行包装,Struts2是通过FORWARD将请求参数转发到具体JSP文件的)与直接请求的URL进行处理,就仿照下面配置。
<!-- URL重定向 --><filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter><init-param><param-name>logLevel</param-name><param-value>sysout:DEBUG</param-value></init-param><filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-mapping>
因为UrlReWrite默认转发方式为FORWARD,所以要想让你的Struts2过滤器拦截到UrlReWrite转发的请求,必须在filter-mapping加上<dispatcher>FORWARD</dispatcher>
例如以下配置:<!-- STRUTS2 配置 --><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>*.do</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-mapping>
注意:如果你有自己的权限验证filter,要想验证转发的URL是否拥有访问权限,也必须在filter-mapping加上<dispatcher>FORWARD</dispatcher>,否则你的filter将不对这进行拦截。
2、urlrewrite.xml
如果你不对urlrewrite的配置文件路径进行配置,其默认路径在WEB-INF下,与web.xml同目录
以下是一个简单示例,使用了wildcard与正则表达式进行配置,需要了解更详细具体配置方法请参考文章顶端的链接。
<?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><!-- /user/blog/main.html - /blog/blog_main.htm?user.user_name=user --><rule match-type="wildcard"><from>/*/blog/main.html*</from><to type="forward">/blog/blog_main.htm?user.user_name=$1</to></rule><!-- blog --><outbound-rule><from>/([a-zA-Z]+)/blog/blog_main.htm</from><to>/$1/blog/main.html</to></outbound-rule></urlrewrite>
如果还有什么配置上的疑问可以进行留言评论哦 ~
- urlrewrite与struts2结合使用配置
- 剖析struts2.1.6与URLRewrite的结合
- 关于UrlRewrite与struts2.x结合
- Struts2与URLRewrite的集成
- struts2与urlrewrite的整合
- struts2与urlrewrite的整合
- struts2 UrlRewrite 配置404错误解决办法
- struts2.3+spring3.2+urlrewrite零配置
- Struts2与JFreeChat简单结合使用
- JAX-WS与Struts2的结合使用
- JSON与Struts2的结合使用
- Struts2与jQuery框架的结合使用
- 使用struts2 urlrewrite 实现页面伪静态
- URLRewrite伪静态与AspNetPager分页控件的结合
- URLRewrite伪静态与AspNetPager分页控件的结合
- struts2与spring结合
- struts2与spring结合
- struts2与dao结合
- Asp.net 后台调用js方法
- B树、B-树、B+树、B*树
- setsockopt设置socket状态
- 如何得到二进制中1的个数
- Linux Crontab 定时任务 命令详解
- urlrewrite与struts2结合使用配置
- 优先队列
- 内存对齐(#pragma pack(n))
- 创建带有背景图片的JPanel
- 一步步构建大型网站架构
- JNI的某些数组和字符串类型转换
- 序列容器:vector,deque,list
- 关于linux和shell的相关书籍
- PROTEUS USB仿真