`
tinguo002
  • 浏览: 25710 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Struts2说说相对路径

阅读更多

 

来源:http://edu.codepub.com/2009/1118/17782.php  --  源码网

 

从刚开始接触 Tomcat 开始,就被繁杂的相对路径给弄晕了,尽管最后每次都能正确的匹配上,但是总觉得不是很顺畅,一直试图找出一条匹配的规则出来,但是每每总结出一条来的时候,总是又被新的“事实”给颠覆,让人不胜烦恼,因此决定有一点写一点。

通常相对路径的写法有两种,一种就是以“ / ”开头,一种就是不以“ / ”开头,这两种写法有什么区别呢,下面举例阐述一下。

现在的 Web 环境是一个 Struts2 的应用,我的应用名是 Struts ,应用程序所在的目录名也是 Struts 。这样我的 url 基本是以 http://localhost/Struts 开头的啦。现在做如下测试:

1 .在 Struts 目录下面有一个文件叫 sayHello.jsp ,它里面的 form 的 action 的值是 HelloWorld.action ,那么提交之后匹配的路径是 http://localhost/Struts/HelloWorld.action 。

2 .如果 action 的值是 test/HelloWorld.action ,那么提交之后匹配的路径是 http://localhost/Struts/test/HelloWorld.action 。

3 .假设在 Struts 目录下面有一个子目录 add ,它里面有一个文件叫 sayHello.jsp ,它里面的 form 的 action 的值是 HelloWorld.action ,那么提交之后匹配的路径是 http://localhost/Struts/add/HelloWorld.action 。

4 .在测试 3 下将 action 的值改为 test/HelloWorld.action ,那么提交之后匹配的路径是 http://localhost/Struts/add/test/HelloWorld.action 。

5 .在测试 3 下将 action 的值改为 /HelloWorld.action ,那么提交之后匹配的路径是 http://localhost/Struts/ HelloWorld.action 。

6 .在测试 3 下将 action 的值改为 /test/HelloWorld.action ,那么提交之后匹配的路径是 http://localhost/Struts/ test/HelloWorld.action 。

总结:在页面文件中,所请求的相对路径为 path ,那么它的路径匹配是从文件当前所在的目录开始的,假设页面文件当前所在目录为 curr ,那么匹配后的完整路径就是 http://localhost/Sturts/curr/path ;如果相对路径为 /aa/bb/cc ,那么匹配后的路径就是 http://localhost/Sturts/path 。也就是说, 如果以“ / ”开头,就从当前应用的根目录开始匹配,如果不以“ / ”开头就从当前文件所在的目录开始匹配 。这样的话,如果文件本来就在根目录下面,那么加“ / ”和不加“ / ”就没啥区别了。

在 Struts2 还一个要匹配路径的地方就是在处理完请求之后对页面进行分发的时候,也就是 result 元素里面的内容。测试记录如下:

1 . <result>/HelloWorld.jsp</result> 。匹配的路径是 http://localhost/Struts/HelloWorld.jsp 。

2 . <result>HelloWorld.jsp</result> 。这个时候就和调用这个 action 的路径相关了。可以这样进行匹配,首先得到请求这个 action 的 url ,然后去掉最后一个“ / ”后面的内容,再把 HelloWorld.jsp 接上去即可。例如,我们是通过 http://localhost/Struts/aa//bb/cc/HelloWorld.action 调用的 action ,那么匹配出来的 url 就是 http://localhost/Struts/aa//bb/cc/HelloWorld.jsp 。

分享到:
评论
1 楼 hzwowo 2010-08-25  
太感谢LZ 正好做项目是碰到这个问题

相关推荐

    struts1和struts2获取相对路径的方法

    Struts1和Struts2分别是该框架的两个不同版本,它们在处理相对路径的方式上有所不同。本文将详细讲解在Struts1和Struts2中如何获取相对路径。 ### Struts1 获取相对路径的方法 在Struts1中,我们通常会用到`...

    struts2文件下载/绝对路径+相对路径

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中,文件下载功能是常见的需求,尤其是在处理用户请求获取服务器上的静态或动态资源时。这篇博文...

    struts2中绝对路径上传图片和显示图片

    本篇将详细介绍如何在Struts2中实现绝对路径上传图片以及在页面上显示这些图片。 首先,了解文件上传的基本概念。在Web开发中,文件上传允许用户通过HTTP请求发送本地文件到服务器。Struts2提供了一套完整的文件...

    struts2 路径问题

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

    struts2 中路径无法跳转的问题

    在Struts2中,路径跳转是应用程序中常见的操作,它涉及到请求转发和重定向。当遇到“Struts2中路径无法跳转的问题”时,这通常与配置、Action类、结果类型或JSP页面的设置有关。以下是一些可能导致问题的关键知识点...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    ### Struts2与Struts1的主要区别 #### Struts2架构设计与实现方式 - **Struts2**在设计上采用了更加灵活的方式,每个请求都对应一个实例化的Action对象,而不是像**Struts1**那样在整个请求周期内共享同一个Action...

    Struts2使用详情

    在Struts2中,配置Action通常使用相对路径,因为这样更便于应用的移植和部署。例如,如果你的Action是`addBook.action`,在struts.xml配置文件中,你可以写成`...

    struts2jar包

    Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...

    Struts2VulsTools-Struts2系列漏洞检查工具

    该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...

    Struts2漏洞检查工具Struts2.2019.V2.3

    Struts2是一款非常流行的Java Web框架,用于构建企业级应用。然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts2jar.zip

    开发者需要将这些JAR文件添加到项目的类路径中,以便能够使用Struts2的功能。文件可能会详细解释如何配置构建工具(如Maven或Gradle)来管理这些依赖,或者如何手动将JAR文件放入WEB-INF/lib目录。 "struts2必备包...

    Struts2教学视频

    Struts2通过Action和Namespace来决定URL路径。Action的全名由Namespace和ActionName组成,例如`/admin/save`,其中`admin`是Namespace,`save`是ActionName。 **七、Action的动态调用方法** Struts2支持Action的...

    K8 Struts2 Exp 20160516(Struts2综合漏洞利用工具)

    2. **安全配置**:正确配置Struts2的过滤器和拦截器,避免暴露不必要的OGNL表达式执行路径。 3. **输入验证**:对用户输入进行严格检查和过滤,防止恶意数据进入系统。 4. **日志监控**:密切关注系统日志,及时发现...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    struts2所有jar包程序文件

    这些jar文件是Struts2框架运行的基础,开发者需要将它们添加到项目的类路径中,以便能够利用Struts2的各种特性。 Struts2的核心jar包包括以下几个主要部分: 1. `struts2-core.jar`:这是Struts2框架的核心库,...

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    Struts2视频教程

    ### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...

    struts2项目部署

    Struts2是一个流行的Java web框架,它为开发者提供了一种模型-视图-控制器(MVC)架构,便于创建结构清晰、可维护性高的企业级应用程序。本教程将详细介绍如何部署一个基于Struts2的项目,特别适合初学者。由于实际...

    struts2全部的jar包

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。这个“struts2全部的jar包”压缩文件包含了运行Struts2应用程序所需的所有核心库和依赖组件。这里我们将深入探讨Struts...

Global site tag (gtag.js) - Google Analytics