java 下载文件

下载文件的代码如下:
第一:新建一个jsp页面 download.jsp这几个压缩文件必须在工程下面是存在的
<body bgcolor="#33CCCC"> 
<font size="3"><h2>网络资料</h2><hr>
<p>&nbsp;&nbsp;&nbsp;此部分资料都是从网络上搜集的,关于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>

你可能感兴趣的:(java,servlet,download)