首页 > Web开发 > 详细

HttpServletResponse

时间:2021-01-13 23:42:42      阅读:22      评论:0      收藏:0      [点我收藏+]

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

原文:https://www.cnblogs.com/xxgbl/p/14274558.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!