很基础的基础知识
转发是服务器行为; 重定向是客户端行为
-
请求转发是一次请求,地址栏不改变;重定向是两次不同请求,地址栏改变
- 客户端发送http请求,web服务器接收这个请求,调用内部的一个方法在容器内部完成请求处理和转发动作, 将目标资源发送给客户.客户端一直显示的是第一次访问的路径.
- 客户端浏览器发送htt请求,web服务器接收后发送301状态码,以及对应的新的url,客户端浏览器发现是301请求后, 就会再发送一个新的http请求,请求url是新的访问的地址,所以浏览器显示的是两次url.
转发得是同一个web容器下的url;重定向可以重定向到任意url
转发过程中,每一个servlet都可以获取请求参数,重定向,只有第一次浏览器给某个servlet发送的请求参数可以被接收到.重定向的servlet是接收不到请求参数的,需要把请求参数再次传递
转发速度快,重定向速度慢
转发: / 代表当前web应用的根目录; 重定向: / 代表当前web站点的根目录
重定向: response.sendRedirect() 转发: HttpServletRequest 的 forward(request, response)