当前位置:   article > 正文

在浏览器上实现下载文件(利用ServletContext的方法实现的功能)_接口请求contextdownload

接口请求contextdownload

案例:获取当前工程的资源

得到web目录下的某个图片资源在浏览器上显示出来

方法

在这里插入图片描述

案例:读取Web目录下的资源文件

步骤
  1. 得到上下文对象
  2. 通过上下文对象的方法读取web/WEB-INF/图片文件,转成一个输入流
  3. 得到响应的字节输出流response.getOutputStream()
  4. 将输入流中数据复制到输出流中
  5. 关闭流
执行效果

在这里插入图片描述

代码
package com.itheima.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

@WebServlet(name = "Demo2Servlet", urlPatterns = "/demo2")
public class Demo2Servlet extends HttpServlet {
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        //1. 得到上下文对象
        ServletContext application = getServletContext();
        //2. 通过上下文对象的方法读取web/WEB-INF/图片文件,转成一个输入流
        InputStream in = application.getResourceAsStream("/WEB-INF/cart504.jpg");
        //3. 得到响应的字节输出流response.getOutputStream()
        OutputStream out = response.getOutputStream();
        //4. 将输入流中数据复制到输出流中
        int len = 0;
        byte[] buf = new byte[1024];
        while((len=in.read(buf))!=-1) {
   
            out.write(buf,0,len);
        }
        //5. 关闭流
        in.close();
        out.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        this.doPost(request, response);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

在这里插入图片描述

改进代码
package com.itheima.servlet;

import org.apache.commons.io.IOUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

@WebServlet(name = "Demo2Servlet", urlPatterns = "/demo2")
public class Demo2Servlet extends HttpServlet {
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        //1. 得到上下文对象
        ServletContext application = getServletContext();
        //2. 通过上下文对象的方法读取web/WEB-INF/图片文件,转成一个输入流
        InputStream in = application.getResourceAsStream(</
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/63550
推荐阅读
相关标签
  

闽ICP备14008679号