`
qxs965266509
  • 浏览: 3872 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java乔晓松-Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespons

 
阅读更多

1.文件上传

第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。

第二步:把form表的enctype设置为:“multipart/form-data“,如下:

<form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action" method="post">

<input type="file" name="uploadImage">

</form>

第三步:在Action类中添加以下属性,属性红色部分对应于表单中文件字段的名称:

public class HelloWorldAction{

private File uploadImage;//得到上传的文件

private String uploadImageContentType;//得到文件的类型

private String uploadImageFileName;//得到文件的名称

//这里略省了属性的getter/setter方法

public String upload() throws Exception{

String realpath = ServletActionContext.getServletContext().getRealPath("/images");

File file = new File(realpath);

if(!file.exists()) file.mkdirs();

FileUtils.copyFile(uploadImage, new File(file, uploadImageFileName));

return "success";

}

}

2.多文件上传

第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。

第二步:把form表的enctype设置为:“multipart/form-data“,如下:

<form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action" method="post">

<input type="file" name="uploadImages">

<input type="file" name="uploadImages">

</form>

第三步:在Action类中添加以下属性,属性红色部分对应于表单中文件字段的名称:

public class HelloWorldAction{

private File[] uploadImages;//得到上传的文件

private String[] uploadImagesContentType;//得到文件的类型

private String[] uploadImagesFileName;//得到文件的名称

//这里略省了属性的getter/setter方法

public String upload() throws Exception{

String realpath = ServletActionContext.getServletContext().getRealPath("/images");

File file = new File(realpath);

if(!file.exists()) file.mkdirs();

for(int i=0 ;i<uploadImages.length; i++){ File uploadImage = uploadImages[i];

FileUtils.copyFile(uploadImage, new File(file, uploadImagesFileName[i]));

}

return "success";

}}

3.获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象

方法一,通过ServletActionContext.类直接获取:

public String rsa() throws Exception{

HttpServletRequest request = ServletActionContext.getRequest();

ServletContext servletContext = ServletActionContext.getServletContext();

request.getSession()

HttpServletResponse response = ServletActionContext.getResponse();

return "scope";

}

方法二,实现指定接口,由struts框架运行时注入:

public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware{

private HttpServletRequest request;

private ServletContext servletContext;

private HttpServletResponse response;

public void setServletRequest(HttpServletRequest req) {

this.request=req;

}

public void setServletResponse(HttpServletResponse res) {

this.response=res;

}

public void setServletContext(ServletContext ser) {

this.servletContext=ser;

}

}

分享到:
评论

相关推荐

    光伏短期功率预测-靳晓松-201810211

    靳晓松在2018年的分享中,提到了几种影响实发功率预测的因素以及相应的处理方法。 首先,实发辐照度的准确性对预测至关重要。系统性的采集设备异常可能导致实发辐照度表现为恒定或异常值,这些数据通常需要被直接...

    光伏短期功率预测-靳晓松-201810201

    光伏短期功率预测是太阳能发电系统运营中的关键环节,它涉及到能源管理、电力市场交易以及电网稳定性的维护。本文主要探讨了两种建模思路以及脏数据的探索方法。 首先,我们来详细了解一下整体思路: 1. **自变量...

    上傳文件代码VS2005&VS2003

    标题中的“上傳文件代码VS2005&VS2003”指的是在Visual Studio 2005和Visual Studio 2003这两款集成开发环境中实现文件上传功能的代码示例。这两个版本的Visual Studio是微软公司推出的两款非常重要的开发工具,广泛...

    Windows内核实现的34个关键问题

    资源名称:Windows内核实现的34个关键问题资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    多媒体技术教程 胡晓松等

    为了跟上技术的发展步伐,胡晓松等编著的《多媒体技术教程》应运而生,它不仅为初学者提供了一个全面了解和学习多媒体技术的平台,也为企业技术人才提供了进一步深化和实践的机会。 多媒体技术是集图像、声音、视频...

    胡晓松:云计算在促进技术与教育深度融合中的作用

    通过云计算,教育者可以打破传统教育模式的局限,创造出更多创新的教学方法和学习体验,使得教育资源的获取更为便捷和高效,同时也为学习者提供了更为个性化和灵活的学习路径。随着云计算技术的不断进步和应用的深入...

    课程设计课程设计课程设计课程设计

    在本次的“课程设计课程设计课程设计课程设计”中,我们将重点探讨编程实践与项目开发的关键知识点,旨在提升学生的编程技能和团队协作能力。通过实际的课程设计,学生将有机会运用所学理论知识解决实际问题,加深对...

    互评-team20-软件需求规格说明书-问题清单1

    处理意见:此问题表明可能存在文件格式错误或损坏,需要编制人王晓松检查文件并重新提交一份可正常访问的版本,确保团队成员能有效查阅和讨论文档。 2. 用例图不规范 问题描述:3.2章节的系统及用户用例模型的用...

    DLT 5222-2005 导体和电器选择设计技术规定.pdf

    《DLT 5222-2005 导体和电器选择设计技术规定》是中国电力行业的一份重要标准,旨在规范电气工程中的导体和电器的选择与设计过程,确保电气系统的安全、稳定和高效运行。这份标准适用于各类电压等级的电力系统,包括...

    航发整体叶盘机器人磨削系统集成方案设计及验证.pdf

    总结来说,文件涉及了机器人磨削技术、系统集成技术、工业以太网、OPC技术、高效精密砂带磨削技术以及数字化集成方案等多个方面的IT和机器人技术知识。这些内容对于专业人士来说是深入理解航发整体叶盘机器人磨削...

    2006-2019 地级市能源消耗量、煤炭占比、二氧化碳排放量

    本文借鉴采用《中国城市统计年鉴》公布的天然气和液化 石油气,全社会用电量,城市供热(蒸汽供热、火力电厂供热)四部分能源消耗量,通过标 准煤折算系数得到能源消耗总量。 煤炭占比采用两种方法: 1.包括城市供热...

    华中科技大学数学与机械学博士生交叉学科创新论坛.pdf

    5. **机器人学和相关数学理论** - 杨晓松教授的报告,涉及到机器人学中遇到的问题及其背后的数学原理。 6. **数值方法和稳定性分析** - 如胡鹏博士对随机Volterra积分微分方程的Stochastic Theta方法的研究。 7. *...

    1997-2020年各省三废排放量和熵值法计算的环境规制综合指数(无缺失值)

    环境规制综合指数是由工业废水排放量、工业 SO2 排放量以及工业烟尘排放量计算而来(表格中有详细的三废排放量及具体计算过程和公式,如有不会,可参照下述参考文献查看) 具体计算方法:(1)将工业废水排放量、...

    1997-2020年各省三废排放量和环境规制综合指数(熵值法合成工业三废)

    表格中有详细的三废排放量及具体计算过程和公式) 具体计算方法:(1)将工业废水排 放量、工业烟尘排放量、工业二氧化硫排放量等三种污染物进行标准化;(2)求取每种污 染物的权重;(3)通过权重和标准化的乘积...

    软件测试原书第2版

    软件测试原书第2版 作者佩腾

    2017年中考试题汇编之词语运用.docx

    从给定的文件内容来看,主要涉及的是2017年中考语文试题中的词语运用部分。这些题目旨在考察学生对于词汇的理解与应用能力,包括成语的正确使用、词语的选择以及语境的应用等。下面将根据文件提供的信息进行知识点的...

    COMSOL ACDC模块 中文手册

    COMSOL ACDC 模块是COMSOL软件中的一款功能强大且实用的模块,旨在帮助工程师和科研人员理解、预测和设计稳态、低频和瞬态应用中的电场和磁场。该模块可以生产出功能更强大、效率更高的产品,并实现行之有效的工程...

Global site tag (gtag.js) - Google Analytics