我不想说如何配置 Struts2 处理的 url 后缀名,因为关于这方面的文章太多了,今天我说一说如何配置 Struts2 不处理的 url 后缀名。
在 struts.xml 或 struts.properties 配置文件中配置 struts.action.extension 项可以设置 Struts2 处理的 url 请求后缀名,
如:struts.action.extension = action, do
这样 url 是这样:http://www.mxjava.com/index.do
很多网站的 url 是没有后缀的,比如利用 ror 开发的网站的 url 类似这样:http://www.mxjava.com/index 。这样的 url 对搜索引擎更加友好。其实利用上面讲的 struts.action.extension 也可以让 Struts2 的 url 变成这样。很简单,只要将 struts.action.extension 设置为空即可。
如:struts.action.extension =
此时 url 是这样:http://www.mxjava.com/index
问题来了,服务器的某个目录下有个 html 文件是希望被访问的,这时在地址栏输入该 html 文件的地址 http://www.mxjava.com/10000.html 后画面上显示的并不是该 html 的内容,而的系统出错信息:
Struts has detected an unhandled exception:
# Messages: There is no Action mapped for namespace / and action name 10000.html.
Struts2 为我们提供了处理的请求后缀配置,但并没有提供不处理的请求后缀配置,难道要为 struts.action.extension 追加 html 的配置,并为每个 html 专门建立一个 Action ?如果网站需要全站静态化,又当如何处理??
其实并不用这么麻烦,关键还在 struts.action.extension 上。只要将配置改为:
struts.action.extension = ,
在等号后面加个逗号即可。
原理是这样的:Struts2 在取得 struts.action.extension 配置后,如果为空,就会对所有请求进行拦截(拦截后只对后缀为空的请求做处理,其它请求出错)。当为不空字符串时,先用逗号分割字符串,然后只对配置的后缀进行拦截。当配置仅为一个逗号时,分割后为空,所以只对后缀为空的请求进行拦截。这时若请求后缀为 .do 或 .action 等的场合,将跳转到 404 页面而不是出错信息页面。
相关推荐
下面我们将详细探讨如何在Struts2框架中实现URL重写。 首先,了解URL重写的基本概念。URL重写是通过改变HTTP请求URL的外观,而不会改变其实际的行为。这通常涉及到在URL中添加或修改查询字符串,或者将路径信息改写...
在这个场景中,我们将深入探讨如何使用`URL Rewrite Filter`来重写Struts2的Action。 首先,让我们理解`URL Rewrite Filter`的基本概念。这个工具提供了一种方式,通过配置XML文件(如`urlrewrite.xml`)来定义一...
本教程将深入探讨如何在Struts2中实现URL重写,以将`.do`后缀改写为`.html`。 首先,我们需要引入URL重写工具,例如`Tuckey URL Rewrite Filter`。这是一个强大的URL管理过滤器,可以帮助我们轻松地重写和管理URL。...
在Struts的配置文件(如struts-config.xml或struts2的struts.xml)中,可以定义动作映射来隐藏请求的后缀。例如,对于Struts1,可以将`<forward>`标签的路径设置为不包含`.action`的URL;对于Struts2,可以使用`...
Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...
总结起来,Java Web实现URL重写是通过拦截请求、修改请求URI、利用框架特性或者使用第三方库等方式,将复杂的请求URL转换为更加简洁、易读的形式。这不仅提高了用户体验,也有助于提升网站的SEO效果。在实际项目中,...
`urlRewrite`是Tuckey开源组织提供的一个URL重写过滤器,它能够帮助我们在Struts2应用中实现这个目标。 在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL...
Struts2 最新漏洞 S2-016、S2-017 修补方案 Struts2 是一个基于 Java 的 Web 应用程序框架,由 Apache 软件基金会维护。最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者...
在Struts2中,默认情况下,请求转发到JSP页面是通过内部转发的方式实现的。这种方式简单且易于理解,能够帮助开发者快速构建Web应用。配置示例如下: ```xml <action name="redirect" class="it.pbt.struts....
通过深入研究和分析struts2-showcase项目,开发者能够全面了解Struts2的特性和最佳实践,从而在实际项目中更好地利用这一强大的框架。同时,它也是一个很好的学习资源,帮助初学者快速上手Struts2开发。
在本文中,我们将深入探讨如何将Ajax技术与Struts2框架结合,实现异步请求数据。这种方式能够提高用户体验,因为它允许后台处理数据而无需刷新整个页面。以下是对关键知识点的详细说明: 1. **Ajax(Asynchronous ...
struts.xml文件中新增以下内容: <!-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
在Struts2框架中,文件上传是一个常见的功能,它允许用户通过表单提交包含文件的请求。`PerfMultiPartRequest`是Struts2中处理文件上传的核心类之一,主要负责解析请求中的多部分数据(multipart/form-data)。在这...
在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...
这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...
在处理“struts2 路径问题”时,我们主要关注的是Struts2框架中的URL映射和资源定位。这篇博客文章可能探讨了在使用Struts2时遇到的路径相关问题,如Action配置、结果类型、静态资源访问等。 1. **Action配置**:在...
然而,Struts1默认的URL结构往往包含了大量的Action类名和方法名,这种形式的URL对搜索引擎优化(SEO)不友好,也不利于用户理解和记忆。因此,URL重写成为了一个重要的需求,以实现更友好的、类似静态页面的URL。 ...
- **具体操作**:通过修改`web.xml`中的Struts2过滤器映射规则,仅让Struts2处理特定后缀的请求。 - **实现步骤**: - 删除`web.xml`中Struts2的全局映射规则`<url-pattern>/*</url-pattern>`。 - 添加新的映射...
Struts2提供了一个名为`struts-ssl-plugin`的插件,帮助开发者轻松地在Struts2应用中集成HTTPS支持。 **集成步骤** 1. **添加依赖** 首先,你需要将`struts-ssl-plugin`的JAR文件添加到项目的类路径中。如果使用...