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)调用的

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

posted @ 2019-04-11 15:30  Zuul  阅读(562)  评论(0编辑  收藏  举报