状态码
响应头
重定向:
BServlet.java:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("BServlet");
//重定向:
//1 设置location
//2 发送302状态码
response.setHeader("Location", "/day10/CServlet");
response.setStatus(302);
}
CServlet.java:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("CServlet");
}
结果:
BServlet
CServlet
定时刷新
DServlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("5秒钟之后跳转到CServlet!");
/*
* 设置名为refresh的响应头
*/
response.setHeader("Refresh", "5;URL=/day10/CServlet");
}
禁用浏览器缓存
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setHeader("cache-control", "no-cache");
response.setHeader("pragma", "no-cache");
response.setDateHeader("expires", -1);
response.getWriter().print("hello hello");
response.getWriter().flush();
response.getWriter().close();
}
响应体
通常是html,也可以是图片
response的两个流
- ServletOutputStream:用来向客户端发送字节数据
ServletOutputStream out=response.getOutputStream();- PrintWriter:用来向客户端发送字符数据,需要设置编码
PrintWriter writer=response.getwriter();- 两个流不能同时使用
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//字节流输出
// String s="Hello world";
// byte[] bytes=s.getBytes();
// response.getOutputStream().write(bytes);
//字符流输出
response.getWriter().print("hello world2");
}
结果相同
ServletOutputStream来读取图片
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
* 响应字节数据
*/
//把一张图片读取到字节数组中
String path="C:\\Users\\29265\\Desktop\\1.png";
FileInputStream fis=new FileInputStream(path);
byte[] bytes=IOUtils.toByteArray(fis);//读取输入流内容的字节到字节数组中
response.getOutputStream().write(bytes);//成功显示图片
}
重定向
sendRedirect(String location):
//快捷重定向方法
//快捷重定向方法
response.sendRedirect("/day10/CServlet");