刚做完一个项目,因为是一个网站,所以会考虑到seo的东西。因为是用ssh做的,因此这里面就会出现*.action、*.jsp等不利于seo的一些值,所以就用urlrewtire这个插件做了处理,处理的相关内容如下:
1、下载urlrewrite-3.2.0.jar,当然也可以是其他版本,在这里我用的是这个版本。然后放到项目的lib目录下。
2、配置过滤器,在web.xml中添加以下代码:
<!-- url 重写 -->
<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 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</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>
,这里面尤其要记得修改struts2的过滤器的mapping中的几种dispatcher。因为在没有添加之前url重写无效。
3、添加urlrewrite.xml文件。改文件放在web.xml同一级目录下面。主要内容如下:
<!-- 将首页映射为/-->
<rule>
<from>/index.html</from>
<to type="forward">queryFontModules.action</to>
</rule>
<!-- 将新闻内容映射为/news-contentId-moduleId.html -->
<rule>
<from>^/news-([0-9]+)-([0-9]+).html$</from>
<to type="forward">
/queryModuleContent.action?contentId=$1&moduleId=$2
</to>
</rule>
。第一个事没有产数的action映射为html。第二个是有两个参数的action映射为html。这里需要有几个注意的地方:一、多个参数在url中我们用“&”符号链接,但在这里面如要转义为:“&”;二、原来url中的参数在这里用$1、$2......表示即可,但是顺序要一致。
4、配置完成时候就可以使用了,例如在浏览器中输入.../index.html这个地址之后,程序会去执行queryFontModules.action这个action,但是地址栏中还是显示.../index.html,这样子就起到了url重写的目的。
分享到:
相关推荐
这就是`URL Rewrite Filter`发挥作用的地方,它是一个基于Apache的开源过滤器,用于实现URL重写规则。在这个场景中,我们将深入探讨如何使用`URL Rewrite Filter`来重写Struts2的Action。 首先,让我们理解`URL ...
下面我们将详细探讨如何在Struts2框架中实现URL重写。 首先,了解URL重写的基本概念。URL重写是通过改变HTTP请求URL的外观,而不会改变其实际的行为。这通常涉及到在URL中添加或修改查询字符串,或者将路径信息改写...
总的来说,"Struts1 URL重写"是一个提高Web应用用户体验和SEO的重要技术,通过自定义过滤器或使用第三方库,我们可以将复杂的动态URL转化为简洁的伪静态URL。"URLFilter.java"文件就是这一过程中的核心实现,它的...
`urlRewrite`是Tuckey开源组织提供的一个URL重写过滤器,它能够帮助我们在Struts2应用中实现这个目标。 在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL...
本教程将深入探讨如何在Struts2中实现URL重写,以将`.do`后缀改写为`.html`。 首先,我们需要引入URL重写工具,例如`Tuckey URL Rewrite Filter`。这是一个强大的URL管理过滤器,可以帮助我们轻松地重写和管理URL。...
3. **使用框架支持**:许多现代的Java Web框架如Spring MVC、Struts2等都提供了内置的URL重写机制。比如Spring MVC可以通过`@RequestMapping`注解和`HandlerMapping`接口来实现友好的URL设计。 ```java @Controller...
综上所述,Struts2的路径问题可能涉及多个层面,包括Action配置、结果类型设置、静态资源访问策略、插件和拦截器的使用,以及URL重写和部署配置等。解决这些问题通常需要对Struts2的工作原理有深入理解,并能熟练...
方案 2:重写 Struts2 DefaultActionMapper 的 handleSpecialParameters 方法,增加action、redirect、redirectAction 等参数的过滤 这个方案是通过重写 Struts2 的 DefaultActionMapper 的 ...
在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...
4. **配置Struts2框架**:同样在web.xml中,配置Struts2的FilterDispatcher,并确保URL重写拦截器能在Struts2之前执行。 5. **部署与测试**:将项目部署到Web服务器后,可以通过配置的静态URL(如:...
Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构应用。它是Apache软件基金会旗下 Jakarta项目的一部分,是Struts1的升级版本,提供了更丰富的功能和更好的性能。...
例如,在Struts1中,Action类通常需要继承自`Action`类并重写`execute`方法,而在Struts2中,开发者可以定义任何类作为Action,只需实现特定的接口或使用注解来标记处理方法。 其次,Struts2引入了拦截器...
5. **org.apache.struts2.components.UrlRenderer**:UrlRenderer负责生成URL,实现URL重写和Action的映射。 通过阅读这些关键类的源码,你可以理解Struts2内部的流程控制和数据传递,从而更好地利用这个框架。同时...
4. **CVE-2016-1000031**:这个漏洞发生在Struts2的URL重写功能中,攻击者可以利用此漏洞通过HTTP头注入执行任意代码。 5. **CVE-2016-10179**:此漏洞源于Struts2的Struts REST插件,攻击者可以通过JSON动作配置...
### Struts2配置过滤器详解 #### 一、概述 Struts2是基于MVC模式的一个开源框架,它能够帮助开发者构建出结构清晰且易于维护的Web应用。在实际开发过程中,为了实现某些功能(例如用户认证、权限控制等),往往...
然而,URL重写是一个重要的功能,用于优化和管理Web应用中的URL,使得它们更加用户友好,搜索引擎优化(SEO)友好,同时也有助于实现RESTful架构。URLRewriteFilter是一款开源的URL重写工具,它可以方便地对HTTP请求的...
同时,Struts2框架提供了丰富的拦截器(Interceptors)、结果类型(Result Types)和插件(Plugins),这些工具可以帮助开发者更好地管理和控制路径的使用,例如通过Interceptor实现URL重写,或者使用FreeMarker等...
Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,主要用于构建可维护性高、结构清晰的企业级应用。MyEclipse是集成开发环境(IDE),尤其适合Java EE项目的开发,它集成了很...
7. **测试与调试**: 完成配置后,通过运行应用并测试不同的URL,确保Struts2能够正确处理请求并返回预期的结果。如果遇到问题,可以查看Struts2的日志,或者启用开发模式以获取更详细的错误信息。 总的来说,Struts...