java HttpServlet 之 HttpServletsponse响应

1.手动设置http响应状态码

HTTP状态码百度百科

resp.setStatus(302);



2.设置响应头

分别有添加和设置 (添加是重复会逗号隔开)  (设置  存在->覆盖   不存在->添加)

//        2.设置响应头
        //添加 -> 重复了 就逗号隔开
        //添加一些String Header
        resp.setHeader("string_aaa","AAA");
        resp.setHeader("string_aaa","BBB");//如果有重复了,会逗号隔开
        //添加一些int Header
        resp.setIntHeader("int_bbb",123);
        //添加一些date Header
        Date date=new Date();
        resp.setDateHeader("date_ccc",date.getTime());

        //设置 -> 区别就是 这个是直接覆盖
        //设置一些 String Header
        resp.setHeader("string_aaa","ABC");
        resp.setIntHeader("int_ddd",321);
        resp.setDateHeader("date_eee",date.getTime()+100);


3.重定向

//3.重定向
        //访问服务器2次(一次访问的地址 一次跳转的地址) 地址栏发生变化 状态码302

        //方法1
        resp.setStatus(302);
        resp.setHeader("Location","/demo2");
        //方法2
        //resp.sendRedirect("/demo2");


4.设置定时刷新头

 resp.setHeader("refresh","5;url=http://www.baidu.com");
5秒后跳转百度


5.设置响应体文本

 // 5.设置响应体文本 (中文乱码 因为默认使用了 iso-8859-1码表)
        //resp.getWriter().write("abcddd");
        //中文乱码解决方法
        String name="粘锅的咸鱼";
        //设置查询码表 (缺点客户端不知道到底用什么解码)
        //resp.setCharacterEncoding("UTF-8");

        //设置客户端解码码表 (必须要先设置 在写 否则还是默认是 iso-8859-1)
        //方法一
        //resp.setHeader("Content-Type","text/html;charset=UTF-8");
        //方法二
        resp.setContentType("text/html;charset=UTF-8");

        resp.getWriter().write(name);


6.使用字节输出流显示一个图片或者文本信息

        //6.使用response获取字节输出流 (显示一个图片)
        ServletOutputStream servletOutputStream = resp.getOutputStream();
        String gif = getServletContext().getRealPath("1.gif");
        InputStream in=new FileInputStream(gif);
        int len=0;
        byte[] buf=new byte[1024];
        while((len=in.read(buf))>0)
        {
            servletOutputStream.write(buf,0,len);
        }
        servletOutputStream.close();
        in.close();

7.文件下载

//7.文件下载
        String filenames=req.getParameter("filename");

        //解决获取中文参数中文乱码
        //filename1=new String(filename1.getBytes("ISO8859-1"),"UTF-8");

        //告诉下载的类型
        String type=this.getServletContext().getMimeType(filenames);
        resp.setContentType(type);

        //告诉客户端文件不进行解析 而是进行下载
        resp.setHeader("Content-Disposition","attachment;filename="+filenames);

        String path=getServletContext().getRealPath(filenames);
        InputStream in=new FileInputStream(path);
        ServletOutputStream out=resp.getOutputStream();
        int len=0;
        byte[] buf=new byte[1024];
        while((len=in.read(buf))>0)
        {
            out.write(buf,0,len);
        }
        in.close();
        out.close();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值