jsp中文件下载的实现
方式一:采用RequestDispatcher进行
[java] view plaincopy
- package cn.jbit.download.servlet;
- import java.io.IOException;
- import javax.servlet.RequestDispatcher;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class DownloadServlet extends HttpServlet {
- private static final long serialVersionUID = 6765085208899952414L;
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doPost(request, response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String filedownload = "/upload/helloworld.jar";//即将下载的文件的相对路径
- String filedisplay = "helloworld.jar";//下载文件时显示的文件保存名称
- response.setContentType("application/x-download");//设置为下载application/x-download
- //response.setContentType("application/x-msdownload");//设置为下载application/x-msdownload
- //response.setContentType("application/octet-stream");//设置为下载application/octet-stream
- response.addHeader("Content-Disposition", "attachment;filename="
- + filedisplay);
- try {
- RequestDispatcher rd = request.getRequestDispatcher(filedownload);
- if(rd != null)
- {
- rd.forward(request,response);
- }
- response.flushBuffer();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
[java] view plaincopy
- package cn.jbit.download.servlet;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class DownloadOfIOServlet extends HttpServlet {
- private static final long serialVersionUID = 6765085208899952414L;
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doPost(request, response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- String basePath = request.getSession().getServletContext().getRealPath("/upload");
- //System.out.println(basePath);
- String filedisplay = "helloworld.jar";
- String filedownload = basePath + File.separator + "helloworld.jar";
- System.out.println("----------------------"+filedownload);
- response.setContentType("applicaiton/x-download");
- response.addHeader("Content-Disposition", "attachment;filename="+filedisplay);
- InputStream is = null;
- OutputStream os = null;
- BufferedInputStream bis = null;
- BufferedOutputStream bos = null;
- is = new FileInputStream(new File(filedownload));
- bis = new BufferedInputStream(is);
- os = response.getOutputStream();
- bos = new BufferedOutputStream(os);
- byte[] b = new byte[1024];
- int len = 0;
- while((len = bis.read(b)) != -1){
- bos.write(b,0,len);
- }
- bis.close();
- is.close();
- bos.close();
- os.close();
- }
- }
[html] view plaincopy
- <a href="/DownloadFile/upload/helloworld.jar">helloworld.jara>
[html] view plaincopy
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- >
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'download.jsp' starting pagetitle>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- head>
- <body>
- 下载1<a href="/DownloadFile/upload/helloworld.jar">helloworld.jara><br/>
- 下载2<a href="/DownloadFile/servlet/downloadServlet">helloworld.jara><br/>
- 下载3<a href="/DownloadFile/servlet/downloadOfIOServlet">helloworld.jara><br/>
- 下载4<a href="/DownloadFile/download/filedownload.action">helloworld.jara><br/>
- body>
- html>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
