`
will_lp
  • 浏览: 7209 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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,那么它的路径匹配是从文件当前所在的目录开始的,假设页面文件当前所在目录为 currentPath,那么匹配后的完整路径就是 http://localhost/Sturts/ currentPath/path;如果相对路径为 /path,那么匹配后的路径就是 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 。
我的总结:如果加上“/“的话,就在项目的路径下,比如:
开始:http://localhost/Struts2/struts2/HelloWorld.jsp为当前路径,
若action为“/hello“,返回http://localhost/Struts2/hello.action;
若action为“hello“,返回http://localhost/Struts2/struts2/hello.action。
也就是加上斜线,就会到最开始项目名下的路径,不加斜线的话,会根据当前的路径决定。
result的配置与上面一样的。
分享到:
评论

相关推荐

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

    在服务器端,工作目录通常是Web应用的根目录,但为了防止路径问题,通常推荐使用绝对路径,尤其是在处理文件上传或读取时。 ### 注意事项 1. **安全性**:在处理用户输入时,应避免直接拼接路径,以防路径遍历攻击...

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

    绝对路径是从根目录开始的完整路径,而相对路径是相对于当前工作目录的路径。在处理文件下载时,开发者需要确保提供的是正确的文件路径。对于绝对路径,它可以直接定位到文件,但可能存在安全风险,如暴露服务器结构...

    struts2 路径问题

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

    struts2 中路径无法跳转的问题

    当遇到“Struts2中路径无法跳转的问题”时,这通常与配置、Action类、结果类型或JSP页面的设置有关。以下是一些可能导致问题的关键知识点: 1. **Struts2配置文件**: - 配置文件通常为`struts.xml`,这是定义...

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

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

    struts中文乱码问题解决详细步骤

    2. **Result配置**:在`struts.xml`或`struts-default.xml`中配置Result时,也可以指定`contentType`属性: ```xml &lt;param name="contentType"&gt;text/html;charset=UTF-8&lt;/param&gt; &lt;param name="inputName"&gt;...

    eclipse struts 中文乱码问题图解

    然后,你需要在Struts的配置文件中指定资源文件路径,如: ```xml &lt;bean id="messageResources" class="org.apache.struts2.views.properties.MessageResourcesFactoryBean"&gt; ...

    Java路径问题最终解决方案 —可定位所有资源的相对路径寻址

    Java路径问题最终解决方案 —可定位所有资源的相对路径寻址 通过相对classpath路径实现自由寻找资源的助手类的源代码

    Struts2使用详情

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

    Struts2中实现页面的跳转

    而在Struts2中,由于请求已经被Struts2拦截,所以这个相对路径可能不是相对于浏览器的URL。因此,通常推荐使用绝对路径或者基于应用根目录的路径。 3. **Web.xml中的FORWARD配置**:在web.xml中,`&lt;error-page&gt;`...

    解决Struts中ApplicationResources.properties文件不支持中文问题

    解决 Struts 中 ApplicationResources.properties 文件不支持中文问题 Struts 框架中,ApplicationResources.properties 文件是用于存储应用程序的资源文件,如按钮文字、菜单项、提示信息等。然而,默认情况下,...

    struts2配置2.5版

    location:解压缩struts-core-2.5.16.jar 后,文件struts-2.5.dtd文件路径。 4.设置开发者模式: &lt;constant name="struts.devMode" value="true" /&gt; &lt;constant name="struts.i18n.encoding" value="utf-8" /&gt; 每次...

    Struts1和Struts2区别

    下面我们将深入探讨Struts1和Struts2的区别。 1. 设计模式: - **Struts1**:基于Front Controller模式,只有一个Servlet(ActionServlet)处理所有请求。它使用Plug-In和Dispatcher机制来实现业务逻辑和视图的...

    Struts2.5.2的配置及问题解决

    Struts2.5.2是Apache Struts框架的一个版本,它是基于MVC设计模式的Java Web应用程序开发框架。本文将详细介绍Struts2.5.2的配置过程以及可能遇到的问题和解决方案。 首先,配置Struts2.5.2需要从官方站点下载所需...

    struts2开发遇到的问题

    以上就是Struts2开发过程中常见的问题和解决策略。在实际开发中,理解Struts2的工作原理、配置细节以及日志信息对定位和解决问题至关重要。此外,保持更新至最新稳定版本的Struts2框架,遵循最佳实践,以及使用IDE的...

    struts2.5.16升级过程中遇到问题详述

    ### Struts2.5.16升级过程中遇到的问题详述 #### 一、概述 本文主要针对从旧版本Struts2框架升级至2.5.16版本时可能遇到的各种问题进行详细介绍,并给出相应的解决方案。这包括了jar包的替换与引入、配置文件的...

    struts2的中文乱码问题解决

    在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取相应的措施。下面将详细介绍如何解决...

    Struts2Path

    ### Struts2相对路径问题详解 #### 一、引言 在使用Struts2框架进行Web应用开发时,经常会遇到路径设置的问题。特别是在处理不同页面之间的跳转与资源定位时,如何正确配置路径成为了开发者不可忽视的一个环节。...

    搭建struts2框架

    struts2框架的详细搭建 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    struts与struts2的区别

    Struts和Struts2是两种不同的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(模型-视图-控制器)架构的Web应用程序。虽然名字相似,但两者在设计哲学、功能特性以及实现方式上有着显著的区别。 **1. ...

Global site tag (gtag.js) - Google Analytics