实现动态文件内容下载
网上碰到资源下载功能是非常常见的事情,以前感觉很好奇这是怎么实现的呢?今天上了课后,自己做了一个实验,原来在Web服务器上实现动态内容下载也是一件非常容易的事情,用户单击这个超级链接就可以将该资源文件下载到客户端。
下面编写一个模拟提供邮件附件下载功能的Servlet程序,邮件附件的内容不是从邮件服务器上获取和解析出来的,而是直接用一个简单的字符窜生成。
1):源程序:Attachment.java
package cn.itcast;
import java.io.IOException;
import java.io.PrintWriter;
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 Attachment extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/x-msdownload");
response.addHeader("Content-Disposition","attachment;filename=aaa.txt");
ServletOutputStream sos = response.getOutputStream();
sos.write("hehe,successfun!".getBytes());
sos.close();
}
}
//注释:setContentType 方法用于设置Servlet输出内容的MIME类型,对于HTTP协议来说就是设置Content-Type响应头字段的值;addHeader方法是增加一个同名的响应头,HTTP响应消息中允许同一名称的头字段出现多次
编译Attachment.java源程序时,确保编译后的class文件存放在了<tomcat的文件安装目录>/webapps/Attachment/WEB-INF/class目录中。