重定向属于客户端行为。服务器在收到客户端请求后,会通知客户端浏览器重新向另外一个URL发送请求,这称为请求重定向。它本质上是两次HTTP请求,对应两个request对象和两个response对象。
重定向的工作流程
重定向的工作流程如下:

1、用户在浏览器中输入URL,请求访问服务器端的Web资源。
2、服务器端的Web资源返回一个状态码为302的响应信息,该响应的含义为:通知浏览器再次发送请求,访问另一个Web资源(在响应信息中提供了另一个资源的URL)。
3、当浏览器接收到响应后,立即自动访问另一个指定的Web资源。
4、另一Web资源将请求处理完成后,由容器把响应信息返回给浏览器进行展示。
转发和重定向的区别
转发和重定向都能实现页面的跳转,但是两者也存在以下区别。
区别
转发
重定向
浏览器地址栏 URL 是否发生改变
否
是
是否支持跨域跳转
否
是
请求与响应的次数
一次请求和一次响应
两次请求和两次响应
是否共享 request 对象和 response 对象
是
否
是否能通过 request 域对象传递数据
是
否
速度
相对要快
相对要慢
行为类型
服务器行为
客户端行为
response.sendRedirect()
HttpServletResponse接口中的sendRedirect()方法用于实现重定向。
返回值类型
方法
描述
void
sendRedirect(String location)
向浏览器返回状态码为 302 的响应结果,让浏览器访问新的 URL。若指定
「链接」