Java中转发和重定向区别

Java中转发和重定向区别作用上的区别:转发和重定向的效果是一样的、重定向跳转范围大,转发只能在本webproject下。转发代码:ServletContextconss=this.getServletContext();RequestDispatcherreq=conss.getRequestDispatcher(“/index.html”);req.forward(request,res

大家好,欢迎来到IT知识分享网。Java中转发和重定向区别

作用上的区别:转发和重定向的效果是一样的、重定向跳转范围大,转发只能在本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 设置数据,看一下第三方servletget到谁的数据?

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

(0)
上一篇 2024-02-26 09:15
下一篇 2024-02-26 15:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信