url rewrite和struts2整合

来源:互联网 发布:某交友社区2千万数据 编辑:程序博客网 时间:2024/05/17 07:22

在qieqie这里http://www.iteye.com/topic/53834

发现了一个好东西,但按照他这里在项目里配置发现不成功

今天在把之前在网上收集的资料找了下,找到答案

在struts的filter-mapping中加入以下就可以了

Xml代码  收藏代码
  1. <filter-mapping>   
  2.         <filter-name>struts2 </filter-name>   
  3.         <url-pattern>*.do </url-pattern>   
  4.         <dispatcher>REQUEST </dispatcher>    
  5.         <dispatcher>FORWARD </dispatcher>    
  6.        <dispatcher>INCLUDE </dispatcher>    
  7. </filter-mapping>  

 

如下:

Xml代码  收藏代码
  1. <!-- Character Encoding filter -->  
  2.     <filter>  
  3.         <filter-name>encodingFilter</filter-name>  
  4.         <filter-class>  
  5.             org.springframework.web.filter.CharacterEncodingFilter  
  6.         </filter-class>  
  7.         <init-param>  
  8.             <param-name>encoding</param-name>  
  9.             <param-value>UTF-8</param-value>  
  10.         </init-param>  
  11.     </filter>  
  12.     <!-- Hibernate Open Session In View filter-->  
  13.     <filter>  
  14.         <filter-name>osivFilter</filter-name>  
  15.         <filter-class>  
  16.             org.springframework.orm.hibernate3.support.OpenSessionInViewFilter  
  17.         </filter-class>  
  18.     </filter>  
  19.     <!-- UrlRewriteFilter filter -->  
  20.     <filter>  
  21.         <filter-name>UrlRewriteFilter</filter-name>  
  22.         <filter-class>  
  23.             org.tuckey.web.filters.urlrewrite.UrlRewriteFilter  
  24.         </filter-class>  
  25.         <init-param>  
  26.             <param-name>logLevel</param-name>  
  27.             <param-value>WARN</param-value>  
  28.         </init-param>  
  29.     </filter>  
  30.         <!-- Struts2 filter -->  
  31.     <filter>  
  32.         <filter-name>struts2-cleanup</filter-name>  
  33.         <filter-class>  
  34.             org.apache.struts2.dispatcher.ActionContextCleanUp  
  35.         </filter-class>  
  36.     </filter>  
  37.         <filter>  
  38.         <filter-name>struts2</filter-name>  
  39.         <filter-class>  
  40.             org.apache.struts2.dispatcher.FilterDispatcher  
  41.         </filter-class>  
  42.     </filter>  
  43.     <filter-mapping>  
  44.         <filter-name>encodingFilter</filter-name>  
  45.         <url-pattern>/*</url-pattern>  
  46.     </filter-mapping>  
  47.   
  48.       
  49.     <filter-mapping>  
  50.         <filter-name>osivFilter</filter-name>  
  51.         <url-pattern>/*</url-pattern>  
  52.     </filter-mapping>  
  53.   
  54.     <filter-mapping>  
  55.         <filter-name>UrlRewriteFilter</filter-name>  
  56.         <url-pattern>/*</url-pattern>  
  57.         <dispatcher>REQUEST</dispatcher>  
  58.         <dispatcher>FORWARD</dispatcher>  
  59.     </filter-mapping>  
  60.   
  61.   
  62.     <filter-mapping>  
  63.         <filter-name>struts2-cleanup</filter-name>  
  64.         <url-pattern>/*</url-pattern>  
  65.         <dispatcher>REQUEST</dispatcher>    
  66.         <dispatcher>FORWARD</dispatcher>   
  67.     </filter-mapping>  
  68.   
  69.     <filter-mapping>  
  70.         <filter-name>struts2 </filter-name>   
  71.         <url-pattern>/*</url-pattern>   
  72.         <dispatcher>REQUEST</dispatcher>    
  73.         <dispatcher>FORWARD</dispatcher>   
  74.     </filter-mapping>  

引用部分

http://www.iteye.com/topic/70219 

1、在web.xml中EncodingFilter的位置应该在Struts2的FilterDispatcher之前,道理很简单,要先调整字符集,再进入Action。 

2、如果使用Urlrewrite,要指定filter-mapping的dispatcher方式,如下 
<filter-mapping> 
    <filter-name>Struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

3、在做上传文件的时候,要在web.xml中增加ActionContextCleanUp这个filter,如果不增加,会发生第一次上传取不到文件的情况 
<filter> 
  <filter-name>struts-cleanup</filter-name> 
  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> 
  </filter> 
  <filter-mapping> 
    <filter-name>struts-cleanup</filter-name> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 
按照Struts2的API,filter的顺序是 
struts-cleanup filter 
SiteMesh filter 
FilterDispatcher

6 
1 
分享到:  
解决compass 数字范围搜索 | compass-reference 6.6.5.property
  • 2008-12-15 15:10
  • 浏览 5622
  • 评论(4)
  • 收藏
  • 分类:企业架构
  • 相关推荐
评论
4 楼 niuqiang2008 2011-04-21   引用
学习了.....
3 楼 wenjinglian 2010-03-31   引用
确实是这样的,不错
2 楼 ws715 2009-03-02   引用
very good
1 楼 卡拉阿风 2008-12-18   引用
第一个常用个规则就是站内的简单重写。 
<rule> 
  <from></from> 
  <to type="forward></to> 
</rule> 
  <from></from>写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是:http://yousite.com/entity.htm ?category=user&page=2.而我们想把它重写为http://yousite.com/entity/uesr/page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写:  
<rule> 
  <from>^/(\w+)/(\w+)/page_(\d+)\.html$</from> 
  <to type="forward">/$1.htm?category=$2&amp;page=$3</to> 
</rule> 
   简单的介绍一下常用的正规表示式: 
代码 说明 
. 匹配除换行符以外的任意字符 
\w 匹配字母或数字或下划线或汉字 
\s 匹配任意的空白符 
\d 匹配数字 
\b 匹配单词的开始或结束 
^ 匹配字符串的开始 
$ 匹配字符串的结束 

常用的&要用  &amp;来表示。$1,$2代表与你配置正规表达式>/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward". 
  另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect"> 
<rule> 
     <from>^/rss/yahoo\.html$</from> 
       <to type="redirect">    http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/MySiteFeed 
      </to> 
</rule>