- 浏览: 743419 次
- 性别:
- 来自: 黑龙江
文章分类
- 全部博客 (476)
- web 前端处理 (57)
- 工具类 (33)
- jsp servlet (15)
- html5 (4)
- Hadoop学习笔记 (30)
- linux (25)
- java (45)
- ibatis (5)
- css (10)
- html table (1)
- struts2 (11)
- hibernate (10)
- spring (27)
- server2005 函数学习 (5)
- 一些工具软件记载 (18)
- 数据库 (17)
- cache (2)
- eclipse (7)
- 英文记录 (1)
- 技术扩展了解 (8)
- 加密 (1)
- 服务器 (6)
- 设计模式 (5)
- 管理与沟通 (3)
- Andorid开发 (54)
- javascript基础 (20)
- Extjs (15)
- 文档使用 (1)
- 线程 (11)
- ant与Log (4)
- 异常记载 (1)
- 架构 (6)
- 脚本 (1)
- SparkSQL (3)
- python (6)
最新评论
-
浮生一如梦:
[b][i][u][list]
[*][img][url][f ...
字节,字节数组输入输出流ByteArrayInputStream,ByteArrayOutputStream理解 -
java_frog:
httpclient4里才有default
DefaultHttpClient使用 -
lizhenlzlz:
lizhenlzlz 写道HttpHost proxy = n ...
DefaultHttpClient使用 -
lizhenlzlz:
HttpHost proxy = new HttpHost(& ...
DefaultHttpClient使用 -
kennykinte:
methodGet()方法里
HttpPost httpGet ...
DefaultHttpClient使用
mport cn.javass.ssonline.upload.util.UploadUtils;
import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownloadServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
//只允许有一个参数 filename
String filename = new String(req.getQueryString().getBytes("ISO-8859-1"), "UTF-8").substring(9);
if ((filename == null) || (filename.trim().length() == 0) || (filename.contains("\\.\\."))) {
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("您下载的文件不存在!");
return;
}
download(req, resp, filename);
}
private void download(HttpServletRequest request, HttpServletResponse response, String filename)
{
String userAgent = request.getHeader("User-Agent");
boolean isIE = (userAgent != null) && (userAgent.toLowerCase().indexOf("msie") != -1);
try
{
filename = URLDecoder.decode(filename, "UTF-8");
String filePath = UploadUtils.getUploadDir(request) + filename;
File file = new File(filePath);
if ((!(file.exists())) || (!(file.canRead()))) {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("您下载的文件不存在!");
return;
}
byte[] buf = new byte[1024];
int len = 0;
BufferedInputStream br = null;
OutputStream ut = null;
response.reset();
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "must-revalidate, no-transform");
response.setDateHeader("Expires", 0L);
String displayFilename = filename.substring(filename.lastIndexOf("_") + 1);
displayFilename = displayFilename.replace(" ", "_");
response.setContentType("application/x-download");
displayFilename = "[私塾在线学习网]"+displayFilename;
if (isIE) {
displayFilename = URLEncoder.encode(displayFilename, "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"" + displayFilename + "\"");
} else {
displayFilename = new String(displayFilename.getBytes("UTF-8"), "ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + displayFilename);
}
br = new BufferedInputStream(new FileInputStream(file));
ut = response.getOutputStream();
while ((len = br.read(buf)) != -1)
ut.write(buf, 0, len);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownloadServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
//只允许有一个参数 filename
String filename = new String(req.getQueryString().getBytes("ISO-8859-1"), "UTF-8").substring(9);
if ((filename == null) || (filename.trim().length() == 0) || (filename.contains("\\.\\."))) {
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("您下载的文件不存在!");
return;
}
download(req, resp, filename);
}
private void download(HttpServletRequest request, HttpServletResponse response, String filename)
{
String userAgent = request.getHeader("User-Agent");
boolean isIE = (userAgent != null) && (userAgent.toLowerCase().indexOf("msie") != -1);
try
{
filename = URLDecoder.decode(filename, "UTF-8");
String filePath = UploadUtils.getUploadDir(request) + filename;
File file = new File(filePath);
if ((!(file.exists())) || (!(file.canRead()))) {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("您下载的文件不存在!");
return;
}
byte[] buf = new byte[1024];
int len = 0;
BufferedInputStream br = null;
OutputStream ut = null;
response.reset();
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "must-revalidate, no-transform");
response.setDateHeader("Expires", 0L);
String displayFilename = filename.substring(filename.lastIndexOf("_") + 1);
displayFilename = displayFilename.replace(" ", "_");
response.setContentType("application/x-download");
displayFilename = "[私塾在线学习网]"+displayFilename;
if (isIE) {
displayFilename = URLEncoder.encode(displayFilename, "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"" + displayFilename + "\"");
} else {
displayFilename = new String(displayFilename.getBytes("UTF-8"), "ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + displayFilename);
}
br = new BufferedInputStream(new FileInputStream(file));
ut = response.getOutputStream();
while ((len = br.read(buf)) != -1)
ut.write(buf, 0, len);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
发表评论
-
uploadify上传的使用
2014-06-19 17:09 01 官方文档 http://www.up ... -
uploadify上传的使用
2014-06-19 17:07 01 官方文档 http://www.u ... -
自定义标签使用
2013-06-13 17:45 951在jsp页面使用此自定义标签 1 创建自定义标 ... -
过滤器(权限过滤器和编码过滤器)
2013-03-08 17:03 0本篇文章是介绍javax.servlet包中Filter的几 ... -
权限过滤器
2013-03-08 16:54 01 过滤器类 public ... -
JSP返回xml数据
2013-02-26 09:28 1685<%@ page contentType= ... -
jsp实现 页面excel的导出
2013-02-26 09:22 1171<%@ page contentType ... -
缓存与session的清理
2013-02-20 17:34 5420jsp清除缓存 cookie 一、清除页面缓存 ... -
servlet cookie 操作
2013-02-18 11:52 961class { public void wr ... -
servlet基础记载
2013-01-03 17:15 845自己作为记载用: 1 得到项目目录 reques ... -
获得客户端IP
2012-11-21 15:37 0String ip = request. ... -
select 过长处理
2012-11-06 14:16 219后台对较长的选项内容剪裁,并把完整的信息放在option的ti ... -
文件下载 jsp
2012-09-28 13:10 578个人理解:文件下载就是将服务器的文件以流的形式输出给 ... -
commons-upload使用
2012-09-28 09:19 1199其中有文件大小与文件的格式处理。 <% ... -
上传下载 ajax
2012-09-28 08:49 0数据备份,自己 使用 其中上传成 ... -
response记录
2012-09-21 16:01 942用这个停止jsp下面代码继续使用。 res ... -
jstl 标签
2012-09-18 09:42 990<%@ taglib uri="ht ... -
smartupload文件上传与下载
2012-09-10 15:46 1380==上传 <%@ page contentType ... -
验证码2
2012-08-24 09:25 0<li>验 证 码: <input ... -
jsp tag标签的使用
2012-07-24 16:15 1229页面 tag 的使用 1 创建一个tag文件 我的测试目录 ...
相关推荐
文件下载servlet,java文件下载。
Servlet技术广泛应用于文件上传和下载的功能实现,因为它们可以方便地与客户端交互并处理数据流。在本例中,我们将深入探讨如何使用Servlet来实现文件上传和下载功能。 首先,让我们了解文件上传的基本流程。当用户...
本文将深入探讨如何在Servlet中实现文件的上传和下载功能,以及在页面上利用JSP和Javabean来实例化对象。 首先,文件上传是通过HTTP多部分请求(Multipart Request)来实现的。Servlet 3.0及以上版本提供了对这种...
本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...
在IT行业中,文件上传与下载是Web应用中常见的功能,特别是在企业级系统中,例如文档管理系统、在线教育平台等。Servlet作为Java Web开发中的一个重要组件,常被用来处理这些操作。下面将详细介绍如何使用Servlet...
在这个"Servlet文件下载项目"中,我们利用Servlet技术来实现文件的下载功能。这是一个非常实用的功能,尤其对于那些需要向用户提供文件下载服务的网站或应用。 首先,我们需要了解Servlet的基本工作原理。Servlet是...
在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...
在IT行业中,文件上传下载是Web应用中常见的功能,尤其在服务器端编程中,Servlet扮演着重要的角色。Servlet是Java编程语言中用于扩展服务器功能的接口,它可以在接收到HTTP请求后进行处理,并向客户端返回响应。在...
这个链接会指向一个`servlet`,由`servlet`来处理实际的文件读取和下载逻辑。 1. **创建Servlet**:首先,我们需要创建一个自定义的`servlet`,例如`FileDownloadServlet`。在`src`目录下的Java源代码文件中,我们...
本示例中,我们将探讨如何使用Java Servlet来实现文件的下载功能。 首先,理解HTTP协议是至关重要的,因为它定义了客户端(浏览器)与服务器之间的通信方式。在文件下载场景中,服务器需要响应一个HTTP请求,该请求...
#### 二、文件下载Servlet代码详解 ##### 1. 导入必要的包 ```java import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import ...
Servlet-api.jar是Java Web开发中不可或缺的一个库文件,它包含了Servlet和JSP(JavaServer Pages)规范的API接口。这个库文件主要用于与Web服务器交互,处理HTTP请求,并生成响应。在本文中,我们将深入探讨Servlet...
赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; 包含翻译后的API文档:javax.servlet-api-4.0.0...
特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大的服务器端技术,可以很好地实现这一功能。本文将详细介绍一个基于Servlet的文件下载代码示例,并对其实现原理进行...
根据提供的文件内容,以下是对Servlet3.1规范官方文档(中文版)中的知识点的详细说明。 首先,Servlet3.1官方文档是Java™ Servlet规范版本3.1的中文翻译版本。它详细描述了servlet技术规范的各个方面,包括对...
这篇博客"答Servlet下载文件的附件"可能涉及了如何利用Servlet来实现文件的下载功能,让我们深入探讨这个话题。 首先,我们需要了解Servlet生命周期中的service()方法。当一个HTTP请求到达服务器,Servlet容器(如...
自己用servlet写的文件上传及下载功能带进度条 主要用到两个jar:commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar 内容介绍: com.fm.FileManagerService:一个servlet用来实现主要的文件上传下载逻辑的 ...
jsp、servlet 文件上传下载技术详解 文件上传下载是 Web 应用中的一种常见需求,使用 jsp 页面和 servlet 实现文件上传下载是其中的一种解决方案。下面将详细介绍 jsp、servlet 文件上传下载技术。 文件上传下载...
本教程将深入讲解如何利用JSP和Servlet来实现大型文件的下载功能,这对于构建高效、稳定的Web应用至关重要。 一、Servlet简介 Servlet是Java平台上的一个标准接口,用于扩展服务器的功能。在Web开发中,Servlet通常...
在这个压缩包中,包含的是对Servlet API的中文文档,可能是作者因为无法找到官方的源码和javadoc而自行整理的笔记。 首先,我们来看看servlet的概念。Servlet是一个Java类,它扩展了服务器的功能,可以处理来自...