重定向和请求转发
- 这个两个都是服务器对请求的处理,但是这两种处理方式不同。
- 先说大概的区别,
- 重定向是两次请求两次响应,可以定向到外部资源或者内部资源,地址栏发生改变。
- 请求转发是一此请求,一次响应。只能转发到内部资源,地址栏不发生改变。
- 还是有点懵?所以深入查询一下吧
重定向
-
重定向是某次请求,服务器接收到了这次请求,但是自己又没有这个资源,所以要告诉客户端,去请求其他资源。但是不能只告诉自己没有,还要告诉客户端哪里有资源。这个资源包括自己服务器内部的资源和其他服务器的资源。
-
response.sendRedirect("https:www.baidu.com"); 重定向语句就是这样,响应对象给客户端使用sendRedirect()方法响应一个新的地址。 在这个方法中就内含了响应状态码302,这个状态码就是重定向的意思,
-
当客户端读到这个响应之后,就会自动跳转到响应的连接地址。
图示
请求转发
- 这个是浏览器请求资源,服务器在第一个servlet中没有找到可用的资源,那就继续在自己的服务器中的其他servlet中寻找,这样的请求,响应方式就是请求转发。
- 来看看图吧
- 其实他的步骤很简单:请求对象得到转发器,转发对象
代码实现
/*Author:LH
CreatTime:2020.08.19.15:59*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.