方法1:
- ServletActionContext.getServletContext().getRealPath(File.separator);//项目根路径如D:\xxx\项目名
ServletActionContext.getServletContext().getRealPath(File.separator);//项目根路径如D:\xxx\项目名
这个方法如果在action的一般方法中执行没问题可得到,但是放到static初始化中时就会报错:
- privatestatic String basePath;
- static {
- basePath = ServletActionContext.getServletContext().getRealPath(File.separator);
- }
private static String basePath; static { basePath = ServletActionContext.getServletContext().getRealPath(File.separator); }
具体为什么没有研究出来
方法2:
- basePath = ProductStage.class.getClassLoader().getResource("")
basePath = ProductStage.class.getClassLoader().getResource("")
得到的字符串是形如:
D:/Java/Tomcat%206.0/webapps/项目名/WEB-INF/classes
而且如果路径中包含空格的话会显示为“%20”,要替换截取得到想要的路径如:
- basePath = ProductStage.class.getClassLoader().getResource("")
- .getFile().replaceAll("/WEB-INF/classes/", "").replaceAll("%20", " ").substring(1);
basePath = ProductStage.class.getClassLoader().getResource("") .getFile().replaceAll("/WEB-INF/classes/", "").replaceAll("%20", " ").substring(1);
相关推荐
在Struts1中,我们通常会用到`Servlet`对象来获取当前应用的根目录,从而构建文件的绝对路径。以下是一种常见的方法: ```java String upload_filepath = this.getServlet().getServletContext().getRealPath("/") ...
在Struts2中,文件下载功能是常见的需求,尤其是在处理用户请求获取服务器上的静态或动态资源时。这篇博文(http://blog.csdn.net/love_xiolan/article/details/54945859)提供了关于如何在Struts2中实现文件下载的...
本篇将详细介绍如何在Struts2中实现绝对路径上传图片以及在页面上显示这些图片。 首先,了解文件上传的基本概念。在Web开发中,文件上传允许用户通过HTTP请求发送本地文件到服务器。Struts2提供了一套完整的文件...
windows linux 下,获取java项目绝对路径的方法,struts2设置了struts.multipart.saveDir后会在根目录建立文件夹,这样会涉及linux下的权限问题
`execute()` 方法中,我们首先获取服务器上的绝对路径(`realpath`),然后将上传的文件复制到指定的目录下。`ServletActionContext` 和 `ActionContext` 是 Struts2 提供的工具类,用于获取上下文信息。 - **方式...
在Struts2中,开发者还可以利用ActionContext获取当前请求的绝对路径,这在需要拼接动态URL或者访问服务器资源时非常有用。例如: ```java String contextPath = ActionContext.getContext().getServletContext()....
在Struts2中处理文件下载是一项常见的任务,尤其在处理用户请求获取服务器上存储的资源时。以下是对文件下载流程、配置以及相关类和方法的详细说明。 **文件下载流程:** 1. **前端请求**:用户通过浏览器点击下载...
接着,我们获取文件的绝对路径,并设置一个临时目录来保存上传的文件。然后,我们检查文件的扩展名,确保只允许特定类型的文件(如jpg、txt、rar)被上传。如果文件类型不符合要求,我们会将用户重定向到错误页面。...
Struts2多文件上传是Java Web开发中常见的一项功能,用于允许用户一次上传多个文件。在Struts2框架中,实现这一功能涉及到一系列的技术和步骤。以下是对这一知识点的详细说明: 1. **Struts2框架**:Struts2是一个...
2、在sping配置中注意单元测试里,xml文件的路径问题,要用绝对路径。 3、struts.xml中命名空间和拦截器的使用。 4、sqlmapconfig.xml中传入参数和result的设置,只需要将得到的值result映射到有此属性的类对象. 5、...
首先,它获取到请求中的`fileName`参数,然后根据这个参数构建文件的绝对路径。接着,它设置响应的内容类型为`application/octet-stream`,以指示浏览器将数据作为二进制流处理。同时,设置`Content-Disposition`头...
2. **Action配置**:在Struts2中,你需要创建一个特定的Action来处理文件下载请求。Action通常会有一个返回值,这个返回值将决定视图的路径,对于文件下载,我们通常配置为一个特定的Result类型,如`stream`。 3. *...
2. **逻辑控制代码**:在Struts2中,这通常是一个Action类,负责处理文件上传请求。Action类需要继承自`org.apache.struts2.dispatcher.multipart.FileUploadAction`或使用`@ultipart-config`注解来启用文件上传。...
本文主要介绍Java中获取路径的各种方法,包括绝对路径和相对路径的概念,以及在JSP和Servlet中的具体实现。 首先,理解基本概念: 1. **绝对路径**:绝对路径是指文件或目录在计算机硬盘上的完整路径,它提供了一...
3. **路径问题**:在 Struts2 中,路径是根据 Action 的路径而非 JSP 的路径来确定的,因此建议使用绝对路径。 - 使用内置标签或脚本语言来获取绝对路径:`(); String basePath = request.getScheme() %>` 以上是...
在Struts2中实现文件的上传与下载是常见的需求,这涉及到用户交互、文件流处理以及安全控制等多个方面。本篇文章将深入探讨如何在Struts2框架下实现文件上传与下载的功能。 首先,我们要理解Struts2中的Action类,...
- 获取目标目录路径,这里通过`context.getRealPath("/upload")`获取绝对路径。 - 生成新的文件名,避免文件重名问题。 - 使用`FileUtils.copyFile(doc, target)`将文件复制到目标位置。 - `generateFileName()`...
为了防止安全风险,如路径遍历攻击,我们需要确保保存文件时使用的路径是安全的,避免用户指定绝对路径。同时,对上传文件的类型和大小进行限制,避免恶意文件上传。 9. **源码分析**: 对于深入理解,可以阅读...
通常建议使用绝对路径,可以通过`request.getContextRoot()`获取Web应用的根路径。在MyEclipse等IDE中,还可以设置基路径变量以简化路径管理。 五、Action接收参数的方式 1. **Action的属性**:定义Action类中的...
// 获取上传文件的绝对路径 String path = getServlet().getServletContext().getRealPath("/") + "uploads/"; // 保存文件 file.transferTo(new File(path + fileName)); return SUCCESS; } catch (Exception...