文档章节

struts2 文件上传与下载 (初始文件上传的底层技术)——struts2第七讲

一别经年
 一别经年
发布于 2014/06/13 21:19
字数 943
阅读 28
收藏 1
点赞 0
评论 0

文件上传 struts2

注:本文系作者在看了浪曦的风中叶老师的struts2视频的个人总结,希望能帮助广大struts2的初学者。 

本讲主要讲解struts2的文件上传机制的底层。 


首先我们还是新建一个新的web project 取名为upload_test 

然后在WebRoot中新建两个jsp页面 upload.jsp 和result.jsp 

代码分别如下: 
upload.jsp 

Jsp代码  收藏代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  

  2. <%  

  3. String path = request.getContextPath();  

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

  5. %>  

  6.   

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

  8. <html>  

  9.   <head>  

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

  11.       

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

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

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

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

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

  17.     <meta http-equiv="description" content="This is my page">  

  18.     <!--  

  19.     <link rel="stylesheet" type="text/css" href="styles.css">  

  20.     -->  

  21.   </head>  

  22.     

  23.   <body>  

  24. <form action='result.jsp' name='upload'>  

  25.                             username : <input name='name' type='text'><br>  

  26.                             file : <input name='file' type='file' >  

  27.                             <br>  

  28.                             <input type='submit'  value='submit' name='submit'>  

  29.                     </form>  

  30.   

  31.   

  32.   </body>  

  33. </html>  



然后是result.jsp页面: 

Jsp代码  收藏代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>  

  2. <%  

  3. String path = request.getContextPath();  

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

  5. %>  

  6. <%@ page import='java.io.*' %>  

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

  8. <html>  

  9.   <head>  

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

  11.       

  12.     <title>My JSP 'result.jsp' starting page</title>  

  13.       

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

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

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

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

  18.     <meta http-equiv="description" content="This is my page">  

  19.     <!--  

  20.     <link rel="stylesheet" type="text/css" href="styles.css">  

  21.     -->  

  22.   

  23.   </head>  

  24.     

  25.   <body>  

  26.               

  27.   

  28.                                    <%  

  29.                                                 InputStream is  = request.getInputStream();          //         新建一个inputstream对象  注意应该在这个页面中导入java.io.*包  

  30.                                                    

  31.                                                  BufferedReader bu = new BufferedReader( new InputStreamReader(is));                  // 将输入的内容转换成字符流  

  32.                                                    

  33.                                                  String buffer = null;  

  34.                                                    

  35.                                                  while( (buffer = bu.readLine()) != null )                        //如果还有内容 怎继续输出  

  36.                                                  {  

  37.                                                      out.print(buffer+"<br>");  

  38.                                                  }  

  39.                                      

  40.                                    %>  

  41.   </body>  

  42. </html>  



这样的基本课可以上传了 
点击文件后点击提交 那么跳转到了result.jsp页面 可是没有任何信息输出 这是怎么回事呢 
这里要注意的是 在文件上上传的表单中必须要包含两个内容 
method='post' 还有 enctype='multipart/form-data' 
加上这两个内容后,再试一次 就成功了

struts2 核心拦截器2 (微微进阶)——stru ...

评论 共 9 条 请登录后发表评论

9 楼 1351539356 2011-04-03 23:49

http://www.jianruishiyouyaowu.com 

http://www.hshxjx.com 

http://www.jrsy100.com 

http://www.6699ok.com 

http://www.50suncity.net 

http://www.wabjw.com 

http://wenwen.soso.com/z/q274894589.htm 

8 楼 虚弱的java 2011-02-19 14:53

这篇文章我也没有看出来与structs2有关系?

7 楼 cokin_tkj 2010-07-30 15:30

一塌糊涂~~~~

6 楼 ynstudio 2010-02-08 19:47

看不懂这些回复的朋友怎么理解的。

我觉着这个例子满合适的,非常简短,说明了原理,一看即明。


引用

请教这篇文章和struts2有什么关系?


这个是讲上传的原理,不是struts2的上传如何用。

引用

就两个JSP文件 还号称上传的底层 我都不好意思说了。。


难道写上一堆?初学者好理解吗?

引用

别告诉我你的后台是空的昂~~~最好能将java程序不写在jsp页面上~~


现在这样不是更简洁易懂吗?


5 楼 xici_magic 2009-12-16 15:10

就两个JSP文件 还号称上传的底层 我都不好意思说了。。

4 楼 yangqianyu222 2009-06-12 11:06

引用

本讲主要讲解struts2的文件上传机制的底层。



请教这篇文章和struts2有什么关系?

3 楼 yangqianyu222 2009-06-12 10:57

强烈建议:代码格式太乱了,另外是否可以把 

Java代码  收藏代码

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


诸如此类的跟该程序无关的代码去掉,那样会更清晰些。

2 楼 radovi 2009-03-13 12:57

sharp_lover 写道


别告诉我你的后台是空的昂~~~最好能将java程序不写在jsp页面上~~


是的 呵呵

1 楼 sharp_lover 2009-03-13 09:44

别告诉我你的后台是空的昂~~~最好能将java程序不写在jsp页面上~~


本文转载自:http://javaweb.group.iteye.com/group/wiki/1564

共有 人打赏支持
一别经年
粉丝 17
博文 138
码字总数 58546
作品 0
西安
程序员
Uploadify——学习(1):在Struts2的使用

Uploadify是一个基于Jquery的文件上传组件,官网http://www.uploadify.com/可以在官网获得该组件,运行演示示例,下载帮助文档。 作为Web前端的增强技术,Jquery给用户以更好的体验和交互,增...

凡尘里的一根葱 ⋅ 2015/09/12 ⋅ 0

Web上传文件的原理及实现

现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload、还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons Fil...

i33 ⋅ 2012/12/18 ⋅ 0

struts2实战教程

Struts2.0已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。 拥有丰富的开发人群,几乎已经成为了事实上的工业标准。因此,学习MVC框架,struts2.0几乎是必须熟悉的...

2846613430 ⋅ 2016/04/25 ⋅ 0

struts2的文件上传和文件下载

实现使用Struts2文件上传和文件下载:   注意点:      (1)对应表单的file1和私有成员变量的名称必须一致               private File file1;      (2)限制上传文...

别叫小伙 ⋅ 2017/03/06 ⋅ 0

Struts2实现文件上传和下载

在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,...

颖辉小居 ⋅ 2015/11/26 ⋅ 0

重大漏洞预警:Struts 2 远程代码执行漏洞(s2-045\s2-046) (含PoC)

背景介绍 近日,安全研究人员发现著名J2EE框架——Struts2存在远程代码执行的漏洞,Struts2官方已经确认该漏洞(S2-045,S2-046),并定级为高危漏洞。 Struts2 的使用范围及其广泛,国内外均...

局长 ⋅ 2017/03/21 ⋅ 17

Struts2常量介绍及说明

Struts2常量介绍10级学员 刘根鹏课堂笔记 一.常量配置: 之所以使用struts.propreties文件配置,是因为为了保持与WebWork的向后兼容 在实际开发中,在web.xml中配置常量相比其他两种,需要更...

happy圈圈 ⋅ 2015/03/28 ⋅ 0

struts2 上传 下载

东方部落: http://11144439.blog.51cto.com struts中上传文件功能小测试。这里jar是 2.5 版本。 项目结构图 废话不多说,直接代码。 2. web.xml配置...

东方部落 ⋅ 2017/05/24 ⋅ 0

struts2 用iframe 做个无刷新上传文件例子(一)

用Iframe来实现无刷新文件上传的注意点 1. 页面需要放一个iframe,并隐藏,然后让上传页面表单的target指定到这个iframe 2. struts2里面,中文文件编码处理,可以在配置文件,也可以在actio...

james_you ⋅ 2014/04/26 ⋅ 0

Java程序员从笨鸟到菜鸟之(七十一)细谈struts2(十三)struts2实现文件上传和下载详解

文件上传和文件下载是我们在web应用程序中常用的两个功能,在java中,实现这两种功能的方式也有很多种,其中struts2就给我们提供了一种算是比较简单的方式吧,下面我们就一起来看一下,首先我...

长平狐 ⋅ 2012/11/12 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部