大家好,欢迎来到IT知识分享网。
作用上的区别:转发和重定向的效果是一样的、重定向跳转范围大,转发只能在本web project下。
转发代码:
ServletContext conss = this.getServletContext();
RequestDispatcher req = conss.getRequestDispatcher(“/index.html”);
req.forward(request,response);
重定向代码:
Response.sendRedirect()
原理上的区别:转发和重定向区别?(url变与不变的作用:变的话可以请求其他web project。不变可以在内部转发数据。)
1,转发url不变,重定向是到新的url当中。
2,转发不能到其他web project下,重定向可以到另外一个web project下。
(重定向可以调整到百度,等等外部的web。而转发只能在本web project下。)
3,转发只需要request一次,重定向需要request两次。(这就是url为什么重定向url会变)
用户request转发,用户只请求一次,这就决定了转发的request对象是用户的request的对象。而用户request重定向,服务器先向用户response一个重定向的地址,用户再次request新的地址。所以request两次。
案例:dispatcher servlet set数据和redirect servlet 设置数据,看一下第三方servlet能get到谁的数据?
Dispatcher(调度:原封不动的转过去。)
request.setAttribute(“name”,“123455”);
RequestDispatcher res=this.getServletContext().getRequestDispatcher(“/respons”); (不能把数据转发到其他web project ,因为参数只要求输入本web project资源地址。)
res.forward(request, response);
Redirect(重新定方向)
request.setAttribute(“name”,”redirect”);
response.sendRedirect(“/proservlet/respons”);
第三方servlet接受request设置的数据。
String str = (String)request.getAttribute(“name”);
System.out.println(“name”+str);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14583.html