响应对象

关于响应

响应就是表示服务器端收到请求,并且处理完毕,将结果告知用户。在B/S架构中,相应对象把结果带回浏览器。

常用响应对象

协议无关的对象标准是:ServletResponse接口
协议相关的对象标准是:HttpServletResponse接口
响应类视图.png

常用方法

方法 解释
addCookie() 添加一个cookie
addHeader() 添加字符串类型响应头
getHeader() 获取响应头
encodeRedirectUrl() 重定向
encodeUrl() url重写
setStatus() 设置相应状态码

常用状态码

状态码 解释
200 执行成功
302 重定向
304 请求资源未改变,使用缓存
400 请求错误,一般为参数错误
404 资源未找到
405 请求方式不被支持
500 服务器内部错误

重定向和转发

重定向

  • 特点:两次请求,地址栏改变,请求域中的对象不能共享数据
  • 实现:response.sendRedirect(重定向地址)

    转发

  • 特点:

    • 浏览器地址不会变
    • 域对象中的数据不会丢失
    • 负责转发的servlet转发前后的相应正文会丢失
    • 由转发的目的地来响应客户端
  • 实现:req.getRequestDispatcher(转发的地址).forward(req,resp)

请求包含

  • 特点:
    • 浏览器地址不会变
    • 域对象数据不会丢失
    • 被包含的Servlet响应头会丢失
  • 实现:req.getRequestDispatcher(转发的地址).include(req,resp)

    区别

  1. 重定向两次请求,转发一次请求
  2. 重定向地址栏会变,转发不会变
  3. 重定向数据是浏览器跳转,转发是服务器内部跳转
  4. 重定向可以跳转到任意网址,转发只能说当前项目
  5. 重定向会丢失数据,转发不会