java 文件下载 jsp文件_jsp文件 Java实现文件上传与下载

9e7a70280b99e4f36d1e5f8c27be33a1.png

通过前台选择文件,然后将资源上传到(即新建一个文件)到发布的资源文件下面,

下载就是url 到发布的资源文件,触发即可自动下载。服务器已经封装了如何下载的底层实现。(此处用的是tomcat)

JSP上传文件方法:关于在HTTP request 中通过Post方法提交文件的规范,该项目性能稳定快速,易于部署和使用.本次教程以前端jsp + 后端 servlet的方式,利用JSP上传文件,你也可以完全在jsp中实现而不用servlet.

在开始JSP上传文件之前你要准备以下几个东西:

1. commons-FileUpload 1.3 包

下载地址:

2. commons-IO 2.5 包

下载地址:

有了上面这些东西我们就可以开始了

1. 新建一个叫Servlet_UploadDownLoad的WEB项目

2. 接着把这两个jar包放到WEB-INF/lib目录中:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

3.接下来我们要准备一份如下内容的upload.

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

上面文件中有几个需要注意的地方就是

1. action="UploadServlet" 必须和后面的web.xml配置文件中对servlet映射必须保持一致.

2.method="POST"这里必须为"POST"方式提交不能是"GET".

3.enctype="multipart/form-data"这里是要提交的内容格式,表示你要提交的是数据流,而不是普通的表单文本.

4. file1,file2,file3表示你要3个文件一起上传,你也可以一次只上传一个文件.

接下来我们要写一个与上面这个upload.jsp配套的servlet程序,就叫做UploadServlet.java

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

upload.jsp文件有了,配套的servlet也有了,现在最后剩下的就是怎么让它们配合工作了,接着我们把WEB-INF/web.xml文件请出来,并在该文件中加入以下内容:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

写好以后再点击"保存"

把你的upload项目整个拷贝到tomcat的webapps目录下,启动tomcat.打开IE浏览器在地址栏中输入:8080/Servlet_UploadDownLoad/upload.jsp怎么样看到JSP上传文件的输入框了吗? 什么,没有看到,出错了! 你仔细检查一下步骤有没有对.

好了,现在我们点击页面上的"浏览"按钮,找到我们要上传的文件,最后点击"Submit",太激动了,还不看一下你的I:\\updir里面有没有你要的东西.

在HTML网页中,通过超链接链接到要下载的文件的地址:downloadOne.jsp

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

"/Servlet_UploadDownLoad/file/commons-beanutils-1.9.3-bin.zip"是文件路径,程序结构如下图:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

程序运行后,可以通过单击需要下载文档实现下载

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

但是这里会出现一个问题,就是单击下载压缩包的时候会弹出下载页面,但是下载图片的时候浏览器就直接打开了图片,没有下载。

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

这是因为通过超链接下载文件时,如果浏览器可以识别该文件格式,浏览器就会直接打开。只有浏览器不能识别该文件格式的时候,才会实现下载。

因此利用第二种方法实现下载功能。

通过Servlet下载文件的原理是通过servlet读取目标程序,将资源返回客户端。

downloadTwo.jsp

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

其中,/Servlet_UploadDownLoad 是servlet程序的映射路径

然后新建一个servlet,名称为ServletDownload,URL映射为/ServletDownload

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-72413-1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软免费软件项目DreamSpark更名为Microsoft Imagine

9月10日消息,微软免费软件项目DreamSpark近日正式更名为Microsoft Imagine,将与一年一度的微软“创新杯(Imagine Cup)”齐名。微软免费软件项目DreamSpark更名为Microsoft Imagine  2008年2月19日,微软公司董事长比尔盖茨在斯坦福大学发布了…

阿特斯携手EDF启动建设巴西191.5MW光伏项目

2016年10月11日,阿特斯太阳能(安大略省,圭尔夫)和EDF Energies Nouvelles(法国,巴黎)共同宣布,将阿特斯巴西Pirapora I太阳能项目80%的股权出售给EDF的巴西本地子公司EDF…

一? ilkkn.n_IL&FS的完整形式是什么?

一? il&kkn.nIL&FS:基础设施租赁和金融服务 (IL& FS: Infrastructure Leasing & Financial Services) IL&FS is an abbreviation of Infrastructure Leasing & Financial Services. It is the largest infrastructure development …

java notify唤醒原理_Java wait和notify虚假唤醒原理

自己在此记录一下,方便日后复习。虚假唤醒的概念jdk官方文档解释:所以说在wait和notify一块使用时,如果使用if作为条件时,会有虚假唤醒的情况发生,所以必须使用while作为循环条件。下面来举例实验:首先&…

C#里面的三种定时计时器:Timer

在.NET中有三种计时器:1、System.Windows.Forms命名空间下的Timer控件,它直接继承自Componet。Timer控件只有绑定了Tick事件和设置EnabledTrue后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想…

wireshark rto_RTO的完整形式是什么?

wireshark rtoRTO:地区运输办公室/公路运输办公室 (RTO: Regional Transport Office/ Road Transport Office) RTO is an abbreviation of the Regional Transport Office. It is an Indian Government departmental organization that is responsible for upholdin…

有效的网络推广超级实用方法

我叫龙雨,先后在百度搜狗工作过3年,后来一直负责一家公司的的网络营销!不知道大家有没有听过111>3这样一个概念,简单来说一下这概念!第一呢就是自己的资源,把自己的资源维护好开发好;第二就是网络营销,网络营销利用…

linux上mysql分区磁盘位置_Linux下Oracle软件、数据文件等所在的磁盘分区空间不足的解决思路...

虚拟机中的ORACLE运行的久了,归档、数据文件不断增长,原来安装ORACLE的分区空间不足。此时可以重新向虚拟机增加一块硬盘,将OR虚拟机中的Oracle运行的久了,归档、数据文件不断增长,原来安装ORACLE的分区空间不足。此时…

FloatingActionMenu 向上弹出菜单

本人在github上找到了一个FloatingActionsMenu,精简了其效果(原效果有上下左右四个方向)仅仅保留向上的效果,并做了一定的优化。github上的源代码:地址 ,精简后的源代码地址:源代码地址。 转载于:https://www.cnblogs.…

给孩子一束安全的光 明基WiT MindDuo亲子共读灯首发评测

论一束光的重要性你该听听一个高度近视孩子的自述,论童年陪伴的重要性你该听听一个留守儿童的自述,改善孩子童年的全球第一盏亲子共读台灯,贴合孩子与家长的心灵,量身打造每一种情境的光线去感受孩子成长学习过程 一个高度近视眼孩…

mysql怎样查表的模式_mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】...

1、mysql简单的查询:select 字段1,字段2... from tablename;如果字段那里写一个*,代表查询所有的字段,等同于指定出所有的字段名,因此如果要查询所有字段的数据,一般都是用*。2、去重查询:selec…

Google再次从官方商店下架伪装成合法程序的恶意应用

本月内的第二次,Google 从官方应用商店 Google Play 移除了伪装成合法程序的恶意应用。被移除的应用都属于名叫 Ztorg 的 Android 恶意程序家族,能利用已知的漏洞 root 被感染的设备,使其很难被删除。自去年 9 月以来,Ztorg 恶意应…

【载誉】致远互联荣获“2017最佳协同管理解决方案”殊荣

6月15日,一年一度的大连软交会于大连市世界博览广场盛大举行。“2017企业服务创新论坛”作为软交会最重要的组成部分之一,本年度以“守正出新——通往基业长青的数字化选择”为主题,吸引到近200位企业级服务领域的企业家及高管参加。致远互联…

RabbitMQ安装|使用|概念|Golang开发

手册:http://www.rabbitmq.com/getstarted.html 安装:http://www.rabbitmq.com/download.html 参考:http://blog.csdn.net/whycold/article/details/41119807 一.介绍 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议&#xff0c…

MS的完整形式是什么?

硕士:理学硕士/外科硕士/ MicroSoft (MS: Master of Science / Master of Surgery / MicroSoft) 1)硕士:理学硕士 (1) MS: Master of Science) MS is an abbreviation of Master of Science. It is a masters degree program provided by universities i…

人工智能能够构建一个自主驱动云吗?

企业和组织可以从云计算中受益,但许多公司并不希望面对公共云的成本,性能和治理问题,并且认为构建自己的私有云的复杂性和运营开销并没有那么困难。 如今,一些云计算供应商正在使用人工智能(AI)来简化私有云…

前端必备的 web 安全知识手记

前言 安全这种东西就是不发生则已,一发生则惊人。作为前端,平时对这方面的知识没啥研究,最近了解了下,特此沉淀。文章内容包括以下几个典型的 web 安全知识点:XSS、CSRF、点击劫持、SQL 注入和上传问题等(…

php属于脚本,php是脚本语言吗

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领…

NetMarketShare:本月桌面浏览器市场份额几乎没有变化

NetMarketShare之前关于台式机浏览器市场份额的报告表示,Google Chrome市场份额正在快速上升,而Edge浏览器市场份额正在以蜗牛的速度前进。而该公司的最新统计数据显示,几乎所有浏览器的市场份额或多或少保持不变。 NetMarketShare的最新统计…

lnmp解析php,LNMP之 php解析

[rootLNMP ~]# vim /usr/local/nginx/conf/nginx.conf打开以下PHP 相关项且更改 scripts$fastcgi_script_name;> /usrlocal/nginx/html$fastcgi_script_name;location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param…