概述
在JSP中,跳转页面有两种方式:
1.forward跳转:。
2.response跳转:response.sendRedirect("跳转页面地址")。
两种跳转的区别如下:
1.forward跳转:
(1)服务器端跳转,地址栏不改变;
(2)执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);
(3)request设置的属性在跳转后的页面仍可以使用;
(4)使用传递参数。
2.response跳转:
(1)客户端跳转,地址栏改变;
(2)所有代码执行完毕后跳转;
(3)跳转后的页面不能使用上一个页面的request属性;
(4)使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。
其他区别:
(1).Request Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;
(2).response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。重定向:
首先服务器受到浏览器客户端请求之后,服务器发送新的链接到客户端浏览器,浏览器接收到新的链接之后又重新请求收到的链接地址,在整个过程中完成之后在客户端浏览器看来是发生了一次跳转,其实是客户端浏览器请求了两次而已,所以在浏览器的地址栏里网络地址自然就会改变成新的连接
跳转:
服务器接收到客户端的请求之后,服务器把控制权交到另一个JSP页面手里,新的JSP页面接收到请求之后根据情况是继续转交控制权或者显示页面由自己决定,到最后显示页面的整个过程就是一个页面跳转过程,在这个过程中,服务器可以把请求的数据在经过的页面进行传递,而不会担心数据的丢失
下面总结一下两者的区别:
1.请求的次数的不同,重定向总共请求了两次服务器;转发则是用户请求一次可能经过N个JSP页面由返回到用户浏览器中,是一次请求多次处理的过程;
2.跳转过程中链接的变化,重定向在跳转中请求了两次服务器并且是两次不同的链接地址,在浏览器的地址栏可以看到两次是有变化的;转发在跳转过程中浏览器请求了一次服务器,服务器经过了n个JSP页面并没有改变请求的链接地址,因为用户只请求了一次,所以在整个跳转过程中链接地址是没有改变的,在浏览器的地址栏就可以看到
3.目的不同,重定向只是简单的让用户访问一个新的链接,而转发是服务器要得到用户的请求内容并需要进行一部分处理的,所以两者目的之不同的
前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法.
1.从地址栏显示来说 forward是办事器恳求资料,办事器直接接见目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器底子不知道办事器发送的内容从哪里来的,所以它的地址栏还是本来的地址. redirect是办事端按照逻辑,发送一个状况码,告诉浏览看从头去恳求那个地址.所以地址栏显示的是新的URL. 2.从数据共享来说 forward:转发页面和转发到的页面可以共享request里面的数据. redirect:不克不及共享数据. 3.从应用处所来说 forward:一般用于用户登岸的时辰,按照角色转发到响应的模块. redirect:一般用于用户刊出登岸时返回主页面和跳转到其它的网站等. 4.从效力来说 forward:高. redirect:低.
最后
以上就是甜蜜睫毛膏为你收集整理的跳转与重定向java,Java Web技术(重定向与跳转的区别)的全部内容,希望文章能够帮你解决跳转与重定向java,Java Web技术(重定向与跳转的区别)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复