protectedvoid doGet(HttpServletRequestrequest, HttpServletResponseresponse)throws ServletException, IOException {
//设置状态码,自己设置后,tomcat不再给我们设置。
response.setStatus(404);
}
通过response设置响应头
addHeader(String name,String value);
addIntHeader(String name, int value);
addDateHeader(String name, long date);
setHeader(String name,String value);
setIntHeader(String name, int value);
SetDateHeader(String name, long date);
其中add表示添加,而set表示设置。
重定向:
特点1、访问服务器两次。 2、地址栏的地址发生变化。
重定向,需要:状态码302,响应头:location代表重定向的地址。
protectedvoid doGet(HttpServletRequestrequest, HttpServletResponseresponse) throws ServletException, IOException {
// TODO Auto-generated method stub
//没有响应,告知客户端去重定向到servlet2
//1、设置状态码302
response.setStatus(302);
//2、设置响应头Location
response.setHeader("Location","/web14/servlet2");
//方式二,封装成一个重定向的方法sendRedirect(url)
//response.setRedirect("web14/servlet2");
//方式三,定时刷新,设置定时刷新的头
response.setHeader("refresh","5;url=http://www.baidu.com");
}
(1)响应体设置文本
PrintWriter getWriter()
获得字符流,通过字符流的write(String s)方法可以将字符串设置到response缓冲区中,随后Tomcat会将response缓冲区中的内容组装成http响应返回给浏览器端。
关于设置中文的乱码问题
原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过response的setCharacterEncoding(String charset)设置response的编码。但我们发现客户端还是不能正常显示文字。
response.setCharacterEncoding("UTF-8");
告知客户端请使用urf-8解码。
//通过一个头Content-Type告知客户端使用何种码表
response.setHeader("Content-Type","text/html;charset=UTF-8");
response.setContentType("text/html;charset=UTF-8");
(2)响应头设置字节
ServletOutputStream getOutputStream()
获得字节流,通过该字节流的write(byte[] bytes)可以向 response缓冲区中写入子节,再由Tomcat服务器将字节内容组成http响应返回给浏览器。
response细节点:
1)response获得的流不需要手动关闭,Tomcat容器会帮助我们关闭。
2)getWriter和getOutputStream不能同时存在。