java HttpServlet 之 HttpServletsponse响应

来源:互联网 发布:农村淘宝网址 编辑:程序博客网 时间:2024/06/06 00:03

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();