实现文件下载的java代码

//这是实现下载类(servlet),详细思路代码例如以下:

//也可连接数据库

package com.message;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

public class FileDownServlet extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GBK";

//Initialize global variables

public void init() throws ServletException {

}

//Process the HTTP Get request

public void doGet(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

response.setContentType(CONTENT_TYPE);

//得到下载文件的名字

//String filename=request.getParameter("filename");

//解决中文乱码问题

String filename=new String(request.getParameter("filename").getBytes("iso-8859-1"),"gbk");

//创建file对象

File file=new File("F://book//WebRoot//"+filename);

//设置response的编码方式

response.setContentType("application/x-msdownload");

//写明要下载的文件的大小

response.setContentLength((int)file.length());

//设置附加文件名称

// response.setHeader("Content-Disposition","attachment;filename="+filename);

//解决中文乱码

response.setHeader("Content-Disposition","attachment;filename="+new String

(filename.getBytes("gbk"),"iso-8859-1"));

//读出文件到i/o流

FileInputStream fis=new FileInputStream(file);

BufferedInputStream buff=new BufferedInputStream(fis);

byte [] b=new byte[1024];//相当于我们的缓存

long k=0;//该值用于计算当前实际下载了多少字节

//从response对象中得到输出流,准备下载

OutputStream myout=response.getOutputStream();

//開始循环下载

while(k

int j=buff.read(b,0,1024);

k+=j;

//将b中的数据写到client的内存

myout.write(b,0,j);

}

//将写入到client的内存的数据,刷新到磁盘

myout.flush();

}

//Process the HTTP Post request

public void doPost(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

doGet(request, response);

}

//Clean up resources

public void destroy() {

}

}

//这是javabean写法 ,主要是实现和数据库连接的,假设没有连接数据库,就可直接不要这

package com;

public class MessageBean {

private String Message;

public String getMessage() {

return Message;

}

public void setMessage(String message) {

Message = message;

}

}

//HTML页面加载写发,也可连接数据库(案例代码也在)

String path = request.getContextPath();

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

%>

My JSP 'book.jsp' starting page

//Vector vv=(Vector)session.getAttribute("message");

//for(int i=0;i

// MessagesBean mb=(MessagesBean)vv.get(i);

// out.println("

");

// out.println("

"+mb.getSender()+"");

// out.println("

"+mb.getMess_time()+"");

// out.println("

"+mb.getGeter()+"");

// out.println("

"+mb.getMess_content()+"");

String filename=null;

session.setAttribute("java.rar",filename);

//取得文件名称

// filename=getFilepath().substring(mb.getFilepath().lastIndexOf("/")+1);

out.println("

5.1下载书--java");//java.rar这个能够改成变量

out.println("

dos视频教程");

out.println("

经常使用DOS命令");

out.println("

");

// }

%>

//这是web.xml配置文件,这非常重要,不然,非常难实现哦

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

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

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

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

This is the description of my J2EE component

This is the display name of my J2EE component

FileDownServlet

com.message.FileDownServlet

FileDownServlet

/FileDownServlet

java 下载代码_实现文件下载的java代码相关推荐

  1. java 下载加速_一种基于Java的大文件下载加速方法与流程

    本发明涉及java/多线程技术领域,涉及一种加速文件下载装置,具体提供一种基于java的大文件下载加速方法. 背景技术: 现有的常用下载方式是基于浏览器的单线程下载.这种单线程下载的方式,是通过htt ...

  2. java线程下载文件_使用多线程在Java下载文件

    我正在做一个类似IDM的下载器,我已经读到了这篇关于它的文章.我已经实现了我的第一步代码. 下面是Downloader类的代码:package download.manager; import jav ...

  3. 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍

    Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...

  4. java proguard 使用_使用proguard混淆java9代码

    序 本文主要研究一下如何使用proguard混淆java9代码 maven com.github.wvengen proguard-maven-plugin package proguard 6.0. ...

  5. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法

    好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...

  6. 最牛逼的java代码_分享史上java最牛逼 最简短的代码-Go语言中文社区

    也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 确实是12306的最核心代码呀 确实牛public class Test{    static{       System.ou ...

  7. java测试性能代码_关于性能:Java代码内部的基准测试

    我最近一直在研究基准测试,我一直对记录程序数据等感兴趣.我想知道我们是否可以在程序中有效地实现自己的内存使用代码和实现自己的时间消耗代码.我知道如何检查代码运行所需的时间: public static ...

  8. java简单记事本代码_简单记事本的java程序代码

    展开全部 天啊, 冖_Na0 为什么会有62616964757a686964616fe4b893e5b19e31333262343038我编的记事本代码呢???呵呵--你肯定是"请教&quo ...

  9. java里用set写自我介绍代码_【优质】java程序员自我介绍-优秀word范文 (8页)

    本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == java程序员自我介绍 第1篇第2篇第3篇第4篇第 ...

最新文章

  1. C# C++ Java
  2. PCL中PFH、FPFH理论
  3. html+dom能做什么,jQuery能做什么?
  4. dtm文件生成等高线 lisp_南方cass如何用图面高程点生成等高线
  5. ~~~~~~~~~~~~~~坏公司鉴别方法 ~~~~~~~~~~~
  6. GT决赛第二次讨论会议
  7. AdapterViewlt;?gt; arg0, View arg1, int arg2, long arg3參数含义
  8. 少年,这有套《街霸2》AI速成心法,想传授于你……
  9. 零基础学sql要多久_零基础如何学习游戏3D建模,要学些什么内容?学多久?
  10. 贪吃蛇代码c语言100行,贪吃蛇代码-C语言.doc
  11. 推广链接生成html操作流程,拼多多生成商城推广链接接口
  12. 微信隐藏的功能和技巧
  13. 空心三角形 C语言版
  14. 洛谷P1979 华容道(dfs)
  15. 浙江移动盒子魔和m401h 2+8G破解使用网络安装软件
  16. 美创科技深度参编的《数据安全治理实践指南(2.0)》发布
  17. 网线水晶头接法和线序(图文详解)
  18. html自动刷新 idea,idea新建css idea怎么刷新导入的css
  19. NBA常规赛总助攻排行榜(数据截止至11年4月14日)
  20. (附源码)ssm学生考勤管理系统 毕业设计 260952

热门文章

  1. Python连载系列:字符串和常见数据类型
  2. 适配器模式 : 农村小伙娶乌克兰美女语言不通一一翻译软件立功
  3. 【转载】RTL 与 technology schematic的区别,包含概念与实例
  4. 常用视频制作软件下载
  5. 【送书】Excel是最牛的数据分析工具,不接受反驳!
  6. BFS和DFS两种方式实现二叉树的层序遍历
  7. 初体验游戏手柄,北通阿修罗2Pro直接把游戏性能拉满
  8. 阿里云轻量服务器收费标准价格表(一览查阅)
  9. 投资10亿!暴风TV智能产业园于江苏奠基
  10. re正则表达式中?P前缀