响应对象
关于响应
响应就是表示服务器端收到请求,并且处理完毕,将结果告知用户。在B/S架构中,相应对象把结果带回浏览器。
常用响应对象
协议无关的对象标准是:ServletResponse接口
协议相关的对象标准是:HttpServletResponse接口
常用方法
方法 | 解释 |
---|---|
addCookie() | 添加一个cookie |
addHeader() | 添加字符串类型响应头 |
getHeader() | 获取响应头 |
encodeRedirectUrl() | 重定向 |
encodeUrl() | url重写 |
setStatus() | 设置相应状态码 |
常用状态码
状态码 | 解释 |
---|---|
200 | 执行成功 |
302 | 重定向 |
304 | 请求资源未改变,使用缓存 |
400 | 请求错误,一般为参数错误 |
404 | 资源未找到 |
405 | 请求方式不被支持 |
500 | 服务器内部错误 |
重定向和转发
重定向
- 特点:两次请求,地址栏改变,请求域中的对象不能共享数据
实现:
response.sendRedirect(重定向地址)
转发
特点:
- 浏览器地址不会变
- 域对象中的数据不会丢失
- 负责转发的servlet转发前后的相应正文会丢失
- 由转发的目的地来响应客户端
- 实现:
req.getRequestDispatcher(转发的地址).forward(req,resp)
请求包含
- 重定向两次请求,转发一次请求
- 重定向地址栏会变,转发不会变
- 重定向数据是浏览器跳转,转发是服务器内部跳转
- 重定向可以跳转到任意网址,转发只能说当前项目
- 重定向会丢失数据,转发不会