1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00
This commit is contained in:
nightsswatch 2020-11-23 12:07:54 +08:00
parent ae6a632776
commit 29201e640d

View File

@ -106,7 +106,7 @@
request.getRequestDispatcher("login_success.jsp").forward(request, response); request.getRequestDispatcher("login_success.jsp").forward(request, response);
``` ```
**重定向Redirect** 是利用服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。服务器通过 HttpServletRequestResponse 的 setStatus(int status)方法设置状态码。如果服务器返回 301 或者 302则浏览器会到新的网址重新请求该资源。 **重定向Redirect** 是利用服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。服务器通过 HttpServletResponse 的 setStatus(int status)方法设置状态码。如果服务器返回 301 或者 302则浏览器会到新的网址重新请求该资源。
1. **从地址栏显示来说**forward 是服务器请求资源,服务器直接访问目标地址的 URL把那个 URL 的响应内容读取过来然后把这些内容再发给浏览器。浏览器根本不知道服务器发送的内容从哪里来的所以它的地址栏还是原来的地址。redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的 URL。 1. **从地址栏显示来说**forward 是服务器请求资源,服务器直接访问目标地址的 URL把那个 URL 的响应内容读取过来然后把这些内容再发给浏览器。浏览器根本不知道服务器发送的内容从哪里来的所以它的地址栏还是原来的地址。redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的 URL。
2. **从数据共享来说**forward转发页面和转发到的页面可以共享 request 里面的数据。redirect不能共享数据。 2. **从数据共享来说**forward转发页面和转发到的页面可以共享 request 里面的数据。redirect不能共享数据。