Struts上传文件到文件服务器以及虚拟路径访问完整步骤

本文详细介绍了如何使用Struts框架将文件上传到文件服务器,避免因Tomcat重新发布导致文件丢失。首先,引入Commons-FileUpload和Commons-IO库,接着在index.jsp中设置表单以multipart/form-data方式提交。通过imgPath.properties配置文件服务器的虚拟路径和物理路径,并在struts.xml、web.xml中进行相应配置。在HelloWorldAction中处理文件上传,将文件复制到指定路径。最后,通过IP地址和虚拟路径访问上传的文件。
摘要由CSDN通过智能技术生成

当我用javaweb上传文件的时候,不想上传到tomcat的webapp下对应的项目中,因为当我重新发布的时候,就会所有文件全部不见了,因此可以通过文件服务器来上传文件。

(一)在myeclipse中导入上传下载jar包、struts的jar包

(1)下载Common-FileUplaod框架地址:

http://jakarta.apache.org/commons/fileupload/,下载commons-fileupload-1.2-bin.zip文件,解压后得到commons-fileupload-1.2.jar。

(2)http://jakarta.apache.org/commons/io/,下载commons-io-1.3.2-bin.zip文件,解压后得到commons-io-1.3.2.jar。

(二)创建index.jsp,首先要import导入java.net.InetAddress和java.util.,把form表的enctype设置为:“multipart/form-data“,修改action跳转。

 

1说明:关于pageContext.request.contextPath

${pageContext.request.contextPath}/helloworld.action

 

${pageContext.request.contextPath}等价于

<%=request.getContextPath()%> 或者可以说是<%=request.getContextPath()%>的EL版,意思就是取出部署的应用程序名或者是当前的项目名称。比如我的项目名称是ajax01 在浏览器中输入为http://localhost:8080/ajax01/login.jsp,${pageContext.request.contextPath}或<%=request.getContextPath()%>

取出来的就是/ajax01,而"/"代表的含义就是http://localhost:8080

代码:“${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。

缺点:操作不便,其他工具无法正确解释。

所以我们项目中可以这样写:

${pageContext.request.contextPath}/login.jsp

 

如下:

<%@ page language="java"import="java.util.*,java.net.InetAddress"pageEncoding="utf-8"%>

<%  String path =request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()++path+"/";%>

<%-- 去掉bashepath后边的path,默认是项目名称 --%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

 <head>

   <base href="<%=basePath%>">

   <title>My JSP 'index.jsp' starting page</title>

   <meta http-equiv="pragma" content="no-cache">

   <meta http-equiv="cache-control" content="no-cache">

   <meta http-equiv="expires" content="0">   

   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

   <meta http-equiv="description"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值