java 下载文件

下载文件的代码如下:
第一:新建一个jsp页面 download.jsp这几个压缩文件必须在工程下面是存在的

<body bgcolor="#33CCCC">
<font size="3"><h2>网络资料</h2><hr>
<p>   此部分资料都是从网络上搜集的,关于java编程的资料。这些资料大都是国<p>内外关于java的经典、文章,希望能对大家有所帮助,下载后解压使用</p>
</font>
<table width="461" height="197" border="1">
<tr>
<td width="309" height="31" bgcolor="#0033FF">资料名称</td>
<td width="136" bgcolor="#0033FF">下载</td>
</tr>
<tr>
<td>Java How to Progrom 4_examples </td>
<td><a href="servlet/Dowload?filename=C How to Program 4_ppt.zip" >点击另存为</a></td>
</tr>
<tr>
<td>Java How to Progrom 4_ppt </td>
<td><a href="servlet/Dowload?filename=C How to Program 4_ppt.zip">点击另存为</a></td>
</tr>
<tr>
<td>Java专家编程</td> <!--href对应着web.xml文件中<url-pattern>的映射路径 -->
<td><a href="servlet/Dowload?filename=C专家编程.rar">点击另存为</a></td>
</tr>
</table>
</body>

第二:在src下面建立一个download包,在此包下新建立一个servlet类Dowload.java


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
System.out.println("==doGet==");
try {
String filename = request.getParameter("filename");
System.out.println(filename);
System.out.println(Dowload.class.getClassLoader().getResource("/").getPath());
File fl = new File(this.getServletContext().getRealPath("/")+filename);// 被下载的文件
if (!fl.exists())
fl.mkdir();
BufferedInputStream buffer = new BufferedInputStream(
new FileInputStream(fl));
byte[] bt = new byte[1024];
int len = 0;
response.reset();// 很重要
// 纯下载方式
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename="
+ fl.getName());
OutputStream out = response.getOutputStream();
while ((len = buffer.read(bt)) > 0) {
out.write(bt, 0, len);
}
buffer.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}

第三:新建servlet后web.xml文件就是:

<servlet>
<servlet-name>Dowload</servlet-name>
<servlet-class>download.Dowload</servlet-class><!--类的路径 -->
</servlet>

<servlet-mapping>
<servlet-name>Dowload</servlet-name>
<url-pattern>/servlet/Dowload</url-pattern>
</servlet-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值