Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >servlet实现文件下载功能

servlet实现文件下载功能

作者头像
Java学习
发布于 2018-04-18 02:53:35
发布于 2018-04-18 02:53:35
1.2K0
举报
文章被收录于专栏:java学习java学习
第一步:首先在你的项目新建一个文件夹存放一些可以下载的文件(本教程一一张图片为例子)

第二步:写servlet(DownloadServlet.java)

packagecom.example.servlet;

importjava.io.File;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

/**

* Servlet implementation classDownloadServlet

*/

publicclass DownloadServlet extends HttpServlet {

privatestaticfinallongserialVersionUID = 1L;

/**

* @see HttpServlet#doGet(HttpServletRequestrequest, HttpServletResponse response)

*/

protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODOAuto-generated method stub

response.setContentType("text/html;charset=utf-8");

//通知浏览器下载的方式打开

response.addHeader("Content-Type", "application/octet-stream"); // 限制类型

String s1="我爱java.png";

String s2 = new String(s1.getBytes("GBK"),"ISO-8859-1");//解决乱码

response.addHeader("Content-Disposition", "attachment;filename="+s2);// 下载后的文件名

//通过文件流读取文件

File file= new File("/File/11.jpg");

InputStreamin=getServletContext().getResourceAsStream(file.toString());

//获取response对象的输出流

OutputStreamout=response.getOutputStream();

byte[] buffer =newbyte[1024];

int len;

while((len =in.read(buffer)) !=-1){

out.write(buffer,0,len);

}

in.close();

out.close();

}

/**

* @see HttpServlet#doPost(HttpServletRequestrequest, HttpServletResponse response)

*/

protectedvoiddoPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODOAuto-generated method stub

doGet(request, response);

}

}


第三步:配置web.xml

<?xml version="1.0"encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name></display-name>

<servlet>

<servlet-name>DownloadServlet</servlet-name>

<servlet-class>com.example.servlet.DownloadServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>DownloadServlet</servlet-name>

<url-pattern>/DownloadServlet</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>


第四步:编写jsp页面(index.jsp)

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>

<%

Stringpath = request.getContextPath();

StringbasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

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

<html>

<head>

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

<title>My JSP 'download.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"content="This is my page">

<!--

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

-->

</head>

<body>

<a href="DownloadServlet">

文件下载

</a>

</body>

</html>


第五步:Tomcat部署项目!运行下载!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
j2ee—框架(1):Servlet+JSP实现基本的登录功能(v1.0)
主要分为四个部分:LoginController、web.xml、login.jsp和login_success.jsp(login_fail.jsp)。 第一部分 LoginController 1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 // TODO Auto-gen
Mister24
2018/05/14
9970
Java Web 文件上传
 在我们的web开发中,很多的时候都需要把本机的一些文件上传到web服务器上面去
Hongten
2018/09/13
2K0
j2ee—框架(2):Servlet+JSP实现基本的登录功能(v2.0)
该部分将逻辑判断在UserBean中进行处理,而且不采用配置的方式去实现,为了区分开两种实现方法的不同,在这里将之前设置的内容只是备注掉,并不会删除,也方便之后将两种方式进行对比。 第一部分 LoginController 1 //LoginController这部分使用的注解的方法 2 //因为使用了注解的方法,所以在web.xml中login的acion需要设置为LoginController 3 //不然找不到用谁来处理login.jsp 4 /** 5 * Servlet impleme
Mister24
2018/05/14
8570
图书信息查询系统
项目的分层结构 action包 BookSearchServlet.java package top.gaojc.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import
是阿超
2021/10/15
1.2K0
一个简单的Ajax功能(用到Jquery与Json)
效果图: 提示:上面的java学习和许肖飞不是写死的而是从服务器中获取的 1、在index.jsp页面载入jquery-1.8.3.js(放在WebRoot目录下的js文件夹里面) 并且在WebR
Java学习
2018/04/18
1.2K0
一个简单的Ajax功能(用到Jquery与Json)
当Java遇见了Html--Servlet篇
方志朋
2017/12/29
8640
当Java遇见了Html--Servlet篇
servlet实现文件上传功能
最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习视频】获取下载链接) ●【新】HTML5知识点视频更新了!(回复【前端资料】获取下载链接) ●答案公布时间:为每期发布题目的第二天 ★【新】回复“测试题”获取昨天发布的软件工程师初级阶段测试题答案 ★【新】回复“学习资料”获取java学习电子文档 ★【新】需要求职简历模板的可以加小编微信xxf960513 聊天系统 ●我希望大家积极参与答题!有什么不
Java学习
2018/04/16
1K0
servlet实现文件上传功能
servlet实现简单的计算器
从今天开始,我会将这学期陆续学习的一些知识,发到网上,也会不断添加新的知识点。 今天,先用servlet编写一个简易的计算器。使用eclipse或myeclipse编写(需要配置jdk,tomcat.可以去其他博客下找教程) 首秀创建一个webproject工程,自己起名字。如果是用eclispe 编写的,那么要选择(Dynamic web project),并且一步一步的创建,最后一部要选择创建web.xml文件。
曼路
2018/10/18
2.4K0
servlet实现简单的计算器
spring mvc hello
There is already handler of type [​class​ com.sdemo.controller.Login] mapped.原因在于spring配置文件中和控制器注解都定义过了。
张哥编程
2024/12/17
990
Java Web 从入门到"改行"(2)--Servlet简介
JavaWeb应用开发的核心技术就是JSP、Servlet与JavaBean。Servlet 作为 Java Web 应用开发的核心技术之一,JSP 以及其他很多优秀的Web框架【Struts2】都是基于 Servlet 实现的。
流川枫
2018/09/12
5260
Java Web 从入门到"改行"(2)--Servlet简介
熟悉servlet的页面跳转
jspweb里面用到的servlet跳转页面的方法  使用的jar包只有 commons-lang3-3.5.jar 运行时,tomcat会先根据web.xml里面的信息,查找servlet <?xm
ydymz
2018/09/10
6060
熟悉servlet的页面跳转
JSP 开发环境搭建与项目运行(二)
上一篇讲到了如何搭建服务器环境和运行服务器。这一篇给大家讲讲jsp如何与服务器建立连接。
毛大姑娘
2020/09/10
1.3K0
Servlet 详解
1、什么是 Servlet? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程
IT可乐
2018/01/04
1.2K0
Servlet 详解
Servlet开发技术,创建,以及Servlet的配置,web.xml的配置
直接上图,不废话!!! 第一:首先在Eclipse的包资源管理器中,单机鼠标右键,在弹出的快捷键菜单中选择“新建”/Servlet命令,在弹出的对话框中输入新建的Servlet所在的包和类名,然后单击
别先生
2017/12/29
6520
Servlet开发技术,创建,以及Servlet的配置,web.xml的配置
request.getParameterNames_request和urllib区别
Servlet中request.getParameter和getParameterValues getParameterNames三者区别
全栈程序员站长
2022/10/03
5460
request.getParameterNames_request和urllib区别
Servlet实现一个简单的登录【验证码】功能
最新通知 ●回复"每日一练"获取以前的题目! ●【新】Ajax知识点视频更新了!(回复【学习视频】获取下载链接) ●【新】HTML5知识点视频更新了!(回复【前端资料】获取下载链接) ●答案公布时间:为每期发布题目的第二天 ★【新】回复“测试题”获取昨天发布的软件工程师初级阶段测试题答案 ★【新】回复“学习资料”获取java学习电子文档 ★【新】需要求职简历模板的可以加小编微信xxf960513 ★【新】回复“聊天系统”获取java多人聊天系统项目源码! ●我希望大家积极参与答题!有什么不懂可以加小编微信进
Java学习
2018/04/16
1.8K0
Servlet实现一个简单的登录【验证码】功能
springMVC系列(四)——springMVC拦截器
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
4590
springMVC系列(四)——springMVC拦截器
Shiro学习笔记四(Shiro集成WEB)
解释说明一下,这个就是登录的请求,如果登录成功就跳转到success.jsp页面上,如果登录不成功的话,转发的登录界面上 其中使用了Shrio的身份认证!
梅花
2020/09/28
4600
Shiro学习笔记四(Shiro集成WEB)
开发一个Servlet示例
Servlet响应请求步骤: Servlet是一个基于Java技术的Web组件,运行在服务器端,用户利用Servlet可以很轻松地扩展Web服务器的功能,使其满足特定的应用需要。Tomcat是一个常用
YGingko
2017/12/28
5520
Servlet过滤器,Servlet过滤器创建和配置
第一:Servlet的过滤器的创建和配置,创建一个过滤器对象需要实现javax.servlet.Filter接口,同时实现Filter的3个方法。        第一方法是过滤器中的init()方法用
别先生
2017/12/29
9840
Servlet过滤器,Servlet过滤器创建和配置
相关推荐
j2ee—框架(1):Servlet+JSP实现基本的登录功能(v1.0)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档