一、Http常见的状态码:
2**(成功) 操作被成功接受并处理
200 OK 请求成功,一般用于Get和Post请求。
3**(重定向) 需要进一步操作完成请求,结合头部信息location字段,指定重定向地址
307 临时重定向
4** (客户端错误)请求包含语法错误或无法完成的请求
400 客户端请求语法错误,服务端无法理解请求的语法。
403 服务端拒绝请求
404 服务端无法根据客户端的请求找到资源(网页或后台服务)
5**(服务器错误)服务器在请求过程中发生了错误
500 服务器内部错误,无法完成请求。
二、重定向和转发:
1、实现原理:
- 重定向:返回3**状态码+location响应头;浏览器跳转到location所在的URL。
- 转发:当次Http请求,直接获取要转发的URL地址并返回。
重定向是在客户端进行跳转。
转发是在服务端进行跳转。
2、跳转次数:
重定向跳转2次;转发跳转一次。
3、URL是否会改变
重定向URL会改变;跳转URL不会改变。
4、请求数据是否会丢失
请求重定向的URL时,会丢失第一次的请求数据;
转发URL,或携带第一次请求的数据,不会丢失。
5、重定向和转发使用的方法。
重定向:
//request.getContextPath()获取项目部署名,/main.html为服务路径
resp.getRedirect(request.getContextPath()+"/main.html");
转发:
req.getRequestDispatchar("/error.html").forward(req,resp);