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