java实现简单的文件下载
来源:互联网 发布:复利的威力 知乎 编辑:程序博客网 时间:2024/06/05 22:34
文件下载 需要在WebRoot 下创建images文件夹 并且放入test.txt文件 创建jsp文件夹 放入01.jsp
index.jsp 不变 web.xml需要配置servlet 适合初学者研究学习
//index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 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" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <a href="jsp/01.jsp">[下载]</a> </body></html>
//jsp文件夹下的01.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> </head> <body> 下载:<a href="downloadServlet.do?filename=test1.txt">test1.txt</a> ${errorResult} </body></html>
//文件下载serlvet
package com.kero99.ygc.download;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DownloadServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取文件下载路径 String path = getServletContext().getRealPath("/") + "images/"; String filename = req.getParameter("filename"); File file = new File(path + filename); if(file.exists()){ //设置相应类型application/octet-stream resp.setContentType("application/x-msdownload"); //设置头信息 Content-Disposition为属性名 附件形式打开下载文件 指定名称 为 设定的filename resp.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); //输入流写入输出流 InputStream inputStream = new FileInputStream(file); ServletOutputStream ouputStream = resp.getOutputStream(); byte b[] = new byte[1024]; int n ; //循环读取 !=-1读取完毕 while((n = inputStream.read(b)) != -1){ //写入到输出流 从0读取到n ouputStream.write(b,0,n); } //关闭流、释放资源 ouputStream.close(); inputStream.close(); }else{ req.setAttribute("errorResult", "文件不存在下载失败!"); RequestDispatcher dispatcher = req.getRequestDispatcher("jsp/01.jsp"); dispatcher.forward(req, resp); } } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); }}
//web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>20170428_V1.0_download</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>DownloadServlet</servlet-name> <servlet-class>com.kero99.ygc.download.DownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DownloadServlet</servlet-name> <url-pattern>/downloadServlet.do</url-pattern> </servlet-mapping></web-app>
0 0
- java实现简单的文件下载
- 一个java实现的简单文件下载程序
- Java实现网络文件下载的简单示例
- java web实现简单文件下载
- java文件下载的实现
- java实现文件的下载
- java实现文件的下载
- JSP实现简单的文件下载功能
- 最简单的方式实现文件下载
- Silverlight实现文件的下载[很简单]
- Android实现简单的文件下载
- 简单的方法实现文件下载
- html5实现最简单的文件下载
- UrlDownloadtoFile文件下载,进度条,下载暂停,停止的简单实现
- 用java实现简单的多线程下载
- Java web 中实现简单的文件上传与下载——学习笔记
- 在Java中使用多线程结合断点续传实现一个简单的文件下载器
- java网络编程六:DatagramSocket类简单实现文件下载
- 对Bitmap 进行水平或者垂直的镜面翻转
- 设计模式全面摘录笔记
- Sql order by 和 group BY一起使用时需要注意
- log4j2 日志配置实战
- 一张图助你分分钟掌握用photoshop将图片转化为背景透明的png技能-ps2017
- java实现简单的文件下载
- [C程序设计(第四版)].谭浩强.扫描版pdf
- python概要和基础
- Multiplication Puzzle POJ
- ZooKeeper学习笔记
- Linux IO模式及 select、poll、epoll详解
- Android 开发基础
- QNX编写程序-QNX程序例子
- JMS&MQ,从入门到精通(五)