Servlet中转发和重定向的介绍与区别

转发和重定向

1、转发

客户端(浏览器)向服务器发送请求,服务器直接给客户端作出响应,一次响应。

语法:

request.getRequestDispatcher("/").forward(request,response);

转发流程图:
Servlet中转发和重定向的介绍与区别

2、重定向

重定向:客户端(浏览器)发送请求给服务器,服务给浏览器发送302状态码,告诉浏览器去访问新的地址,两次响应。

语法:

 response.sendRedirect(request.getContextPath()+"/");

重定向流程图:

Servlet中转发和重定向的介绍与区别

3、转发和重定向的区别

1.   转发往服务器发送一次请求,重定向往服务器发送两次请求

2.   转发是在服务器内部完成 ,客户感知不到;响应是给客户端302状态码,让客户端去访问新的地址

3.   使用转发地址栏不发生变化;使用重定向地址栏发生变化

4.   使用转发可以访问WEB-INF下的资源;使用重定向不可以访问WEB-INF下的资源
  因为WEB-INF对客户端的请求做了一层隔离,所以说,浏览器直接请求WEB-INF下的资源是不允许的。
上一篇:二逼平衡树


下一篇:Acwing - 算法基础课 - 笔记(八)