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>
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> <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>