servlet请求转发与重定向的区别

Posted leduo-zuul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet请求转发与重定向的区别相关的知识,希望对你有一定的参考价值。

1.请求转发(forward)

request.getRequestDispatcher("parameter").forward(request,response);
跳转到指定的服务器资源,地址栏URL不变,请求响应不变。


2请求包含(include)
request.getRequestDispatcher("parameter").include(request,response);
跳转到指定的服务器资源且包含之前的资源,地址栏URL不变,请求响应不变。

注*  parameter可以是一个servlet,可以是一个jsp文件,或者是一个html文件,我们可以理解为客户端请求调用服务器的资源。

 

3.重定向(redirect)
rosponse.sendRedirect("http://www.baidu.com");
跳转到指定url资源,地址栏url不同,请求响应不同(另起一个响应)

 

请求转发(包含)和重定向的区别
1.请求转发只有一个请求和响应,而重定向,则是另起一个请求响应,也就是说两个请求和响应。
2.请求转发只能调用跳转到在本服务器下的资源,但是重定向可以跨应用,比如例子中跳转到百度首页。
3.请求转发地址栏不变,重定向地址栏变化
4.请求转发和包含是通过请求(request)调用的,重定向则是通过响应(response)调用的

无论是那种跳转,在当前资源中的代码都会执行完成。

以上是关于servlet请求转发与重定向的区别的主要内容,如果未能解决你的问题,请参考以下文章

servlet转发与重定向区别

servlet之转发与重定向的区别

idea创建简单web项目分析Servlet的请求转发与重定向的区别

SERVLET API中转发与重定向的区别?

Servlet 及 请求转发与重定向

java web005——请求转发与重定向