`
卡拉阿风
  • 浏览: 100834 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

url rewrite和struts2整合

    博客分类:
  • SEO
阅读更多

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

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

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

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

<filter-mapping> 
        <filter-name>struts2 </filter-name> 
        <url-pattern>*.do </url-pattern> 
        <dispatcher>REQUEST </dispatcher>  
        <dispatcher>FORWARD </dispatcher>  
       <dispatcher>INCLUDE </dispatcher>  
</filter-mapping>

 

如下:

<!-- Character Encoding filter -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	<!-- Hibernate Open Session In View filter-->
	<filter>
		<filter-name>osivFilter</filter-name>
		<filter-class>
			org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
		</filter-class>
	</filter>
	<!-- UrlRewriteFilter filter -->
	<filter>
		<filter-name>UrlRewriteFilter</filter-name>
		<filter-class>
			org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
		</filter-class>
		<init-param>
			<param-name>logLevel</param-name>
			<param-value>WARN</param-value>
		</init-param>
	</filter>
		<!-- Struts2 filter -->
	<filter>
		<filter-name>struts2-cleanup</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ActionContextCleanUp
		</filter-class>
	</filter>
		<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	
	<filter-mapping>
		<filter-name>osivFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>UrlRewriteFilter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>


	<filter-mapping>
		<filter-name>struts2-cleanup</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>  
        <dispatcher>FORWARD</dispatcher> 
	</filter-mapping>

	<filter-mapping>
		<filter-name>struts2 </filter-name> 
        <url-pattern>/*</url-pattern> 
        <dispatcher>REQUEST</dispatcher>  
        <dispatcher>FORWARD</dispatcher> 
	</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
分享到:
评论
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>

相关推荐

    ssh2中的urlrewrite和Struts2的生成静态页面

    在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...

    使用urlrewrite重写struts2的action

    Struts2是一个非常流行...总之,结合Struts2框架使用`URL Rewrite Filter`能够有效地改进你的应用的URL结构,提升用户体验,并为安全性和性能带来诸多好处。熟练掌握这一技术,对于开发高质量的Java Web应用至关重要。

    Struts2下使用urlReWrite的最简实例(MyEclipse工程)

    在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL重写功能。首先,你需要确保已经安装了MyEclipse,并且在项目中引入了Struts2和urlRewrite的相关依赖库。 ...

    struts2+spring3+hibernate4+urlrewrite

    本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应

    urlrewrite2伪静态与使用文档(IIS)

    标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...

    IIS Urlrewrite2

    1. **安装**:下载并安装IIS URL重写2的扩展,通常是`IIS Urlrewrite2.exe`文件,通过IIS Manager进行安装。 2. **添加规则**:在IIS Manager中选择目标站点,然后在“管理服务”下找到“URL重写”,点击“添加规则...

    struts1.2与urlrewritefilter 的整合

    综上所述,整合Struts1.2与URLRewriteFilter是一项重要的优化工作,它可以帮助我们创建更加友好、易用的URL,提升用户体验,同时也方便了应用程序的维护和扩展。在项目实践中,理解并掌握这两者的结合使用,对于提升...

    UrlRewrite例子

    UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...

    URLRewrite配置和使用

    URLRewrite配置和使用 URLRewrite是一种URL重写技术,它可以满足搜索引擎的要求,隐藏技术实现,提高网站的移植性,并满足美感的要求。下面将详细介绍URLRewrite的配置和使用。 1. 满足搜索引擎的要求 搜索引擎对...

    UrlRewrite.rar

    总结来说,UrlRewrite作为一款强大的URL重写工具,为企业和开发者提供了便利,使得在IIS环境下实现URL优化变得更加简单。通过理解其工作原理和配置方法,我们可以灵活地调整网站的URL结构,以适应不断变化的业务需求...

    urlrewrite-maven-example.zip

    URLRewrite是一款强大的URL管理工具,尤其在Java Web应用中广泛使用,它可以帮助开发者实现URL的重写和转换,以达到优化URL、隐藏真实路径、提高SEO效果等目的。在本篇文章中,我们将深入探讨URLRewrite的核心概念和...

    URLrewrite-实例

    `URLrewrite`是一个基于Java的开源过滤器,它实现了Apache的mod_rewrite功能,广泛应用于Spring、Struts、JSF等Java Web框架中。它提供了强大的规则配置,使得开发者能够灵活地对URL进行重写和重定向。 在使用`URL...

    urlrewrite3.04的demo

    2. 配置web.xml:在`web.xml`中添加`Filter`和`Filter-Mapping`,以启动`urlrewrite`过滤器。 3. 编写urlrewrite.xml:这是URL重写的核心配置文件,定义了各种URL重写规则。 4. 测试与调试:运行项目,通过浏览器...

    URLRewrite URL重写组件

    URLRewrite组件是ASP.NET开发中的强大工具,通过灵活的规则定义,可以实现URL的优化和管理。理解其工作原理和配置方式,对于提升网站性能、用户体验和SEO优化都具有重要意义。在实际应用中,结合CSS和其他前端技术,...

    iis urlrewrite文件

    2. 规则:URL Rewrite基于规则引擎,规则由条件和动作组成,条件用于判断何时应用规则,动作则定义如何转换URL。 二、安装与配置IIS URL Rewrite 1. 安装:可以从Microsoft Web Platform Installer或者微软官方网站...

    netcn_URLRewrite

    3 最重要的 在象Google Yahoo 和 Live 这样的搜索引擎中提高你网站上网页的搜索相关性 具体来说 URL重写经常能使你在你网站上"&gt;什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站...

    UrlRewrite域名重写

    2. **正则表达式**:UrlRewrite规则中经常用到正则表达式来匹配和提取URL中的特定部分。熟练掌握正则表达式对于编写复杂的URL重写规则至关重要。 3. **条件组合**:有时候,我们可能需要多个条件一起满足才执行重写...

    网站安全urlrewrite教程和jar包

    总的来说,URL重写是提升网站安全性和用户体验的重要手段,`urlrewrite`工具提供了一种简便而强大的实现方式。通过熟练掌握其配置和使用,开发者能够更好地控制和管理Web应用的URL,从而提高应用的安全性和可维护性...

    urlrewrite 支持自定义多配置文件

    confPath 默认 /WEB-INF/urlrewrite.xml 只支持一个配置文件,为了更好的阅读和维护,修改了源码: 1.如果想用原生的urlRewriteFilter confPath 请放完整地址(eg:WEB-INF/urlrewrite.xml); 2.如果想读多个配置文件,...

    URLRewrite.dll

    总之,`URLRewrite.dll`是IIS服务器中实现URL重写和伪静态的关键工具,通过对源码示例的分析,我们可以更深入地了解其工作原理,并在实际项目中灵活运用,提升网站的质量和用户体验。通过遵循最佳实践,我们可以确保...

Global site tag (gtag.js) - Google Analytics