HttpServletResponse

HttpServletResponse

作用:给客户端回送响应。

常见应用:

向浏览器发送数据

  • 使用字节流向浏览器发送数据
public class FirstServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //向浏览器发送数据
        //字节流
        response.getOutputStream().write("aaa".getBytes());
    }
  • 使用字符流向浏览器发送数据
public class SecondServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //使用字符流
        response.getWriter().println("xxgbl");
    } 

需要注意一个问题:同一个servlet里不能同时使用字节流和字符流。这个servle里向浏览器发送数据用的是字节流的话,就只能用字节流。比如你先用字节流向浏览器发送了一个数据,又用字符流向浏览器发送了一个数据,字符流发送的数据浏览器收不到,且当抓包的时候会出现500。

下载文件

public class ThirdServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //下载文件
        /*
            1.获取文件路径
            2.获取文件的名字
            3.让浏览器支持下载
            4.将文件写出到浏览器
            5.关闭流
         */

        //1.获取文件的路径
        String path ="D:\\idea\\workspace\\JavaWeb\\javaweb-02\\src\\main\\resources\\img\\1.jpg";
        //2.获取文件的名字: 使用字符串分割的方式获取文件名
        String filename = path.substring(path.lastIndexOf("\\") + 1);
        System.out.println(filename);
        // 3.让浏览器支持下载: 设置响应头
        response.setHeader("content-disposition", "attachment;filename="+filename);
        // 4.将文件写出到浏览器
        BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));
        ServletOutputStream out = response.getOutputStream();
        int len = 0;
        byte[] buffer = new byte[1024];
        while((len=in.read())!=-1){
            out.write(buffer);
        }
      	5.关闭流
        out.close();
        in.close();
    }

实现重定向(重点)

public class FourthServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      response.sendRedirect(request.getContextPath()+"/FirstServlet");
    }

HttpServletResponse

上一篇:每天一题之js执行顺序


下一篇:horizontal line and right way to code it in html, css