`

在struts2中怎么实现请求的url 不带后缀名--非url重写方式

 
阅读更多

我不想说如何配置 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重写

    下面我们将详细探讨如何在Struts2框架中实现URL重写。 首先,了解URL重写的基本概念。URL重写是通过改变HTTP请求URL的外观,而不会改变其实际的行为。这通常涉及到在URL中添加或修改查询字符串,或者将路径信息改写...

    使用urlrewrite重写struts2的action

    在这个场景中,我们将深入探讨如何使用`URL Rewrite Filter`来重写Struts2的Action。 首先,让我们理解`URL Rewrite Filter`的基本概念。这个工具提供了一种方式,通过配置XML文件(如`urlrewrite.xml`)来定义一...

    struts2改写url后缀demo

    本教程将深入探讨如何在Struts2中实现URL重写,以将`.do`后缀改写为`.html`。 首先,我们需要引入URL重写工具,例如`Tuckey URL Rewrite Filter`。这是一个强大的URL管理过滤器,可以帮助我们轻松地重写和管理URL。...

    java struts如何隐藏提交后缀.action, .do.zip

    在Struts的配置文件(如struts-config.xml或struts2的struts.xml)中,可以定义动作映射来隐藏请求的后缀。例如,对于Struts1,可以将`<forward>`标签的路径设置为不包含`.action`的URL;对于Struts2,可以使用`...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    Java WEB实现URL重写

    总结起来,Java Web实现URL重写是通过拦截请求、修改请求URI、利用框架特性或者使用第三方库等方式,将复杂的请求URL转换为更加简洁、易读的形式。这不仅提高了用户体验,也有助于提升网站的SEO效果。在实际项目中,...

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

    `urlRewrite`是Tuckey开源组织提供的一个URL重写过滤器,它能够帮助我们在Struts2应用中实现这个目标。 在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    Struts2 最新漏洞 S2-016、S2-017 修补方案 Struts2 是一个基于 Java 的 Web 应用程序框架,由 Apache 软件基金会维护。最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者...

    struts2中的url

    在Struts2中,默认情况下,请求转发到JSP页面是通过内部转发的方式实现的。这种方式简单且易于理解,能够帮助开发者快速构建Web应用。配置示例如下: ```xml <action name="redirect" class="it.pbt.struts....

    struts2-showcase.rar

    通过深入研究和分析struts2-showcase项目,开发者能够全面了解Struts2的特性和最佳实践,从而在实际项目中更好地利用这一强大的框架。同时,它也是一个很好的学习资源,帮助初学者快速上手Struts2开发。

    Ajax与Struts2异步请求数据

    在本文中,我们将深入探讨如何将Ajax技术与Struts2框架结合,实现异步请求数据。这种方式能够提高用户体验,因为它允许后台处理数据而无需刷新整个页面。以下是对关键知识点的详细说明: 1. **Ajax(Asynchronous ...

    Struts2_s2-016&017&ognl2.6.11_patch漏洞补丁

    struts.xml文件中新增以下内容: <!-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...

    重写struts2文件上传处理类

    在Struts2框架中,文件上传是一个常见的功能,它允许用户通过表单提交包含文件的请求。`PerfMultiPartRequest`是Struts2中处理文件上传的核心类之一,主要负责解析请求中的多部分数据(multipart/form-data)。在这...

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

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

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...

    struts2 路径问题

    在处理“struts2 路径问题”时,我们主要关注的是Struts2框架中的URL映射和资源定位。这篇博客文章可能探讨了在使用Struts2时遇到的路径相关问题,如Action配置、结果类型、静态资源访问等。 1. **Action配置**:在...

    Struts1 ULR重写

    然而,Struts1默认的URL结构往往包含了大量的Action类名和方法名,这种形式的URL对搜索引擎优化(SEO)不友好,也不利于用户理解和记忆。因此,URL重写成为了一个重要的需求,以实现更友好的、类似静态页面的URL。 ...

    struts2和servlet的共存问题

    - **具体操作**:通过修改`web.xml`中的Struts2过滤器映射规则,仅让Struts2处理特定后缀的请求。 - **实现步骤**: - 删除`web.xml`中Struts2的全局映射规则`<url-pattern>/*</url-pattern>`。 - 添加新的映射...

    struts2集成struts-ssl-plugin插件实现https访问例子

    Struts2提供了一个名为`struts-ssl-plugin`的插件,帮助开发者轻松地在Struts2应用中集成HTTPS支持。 **集成步骤** 1. **添加依赖** 首先,你需要将`struts-ssl-plugin`的JAR文件添加到项目的类路径中。如果使用...

Global site tag (gtag.js) - Google Analytics