为了账号安全,请及时绑定邮箱和手机立即绑定

getRequestDispatcher 和sendRedirect到底有什么区别

getRequestDispatcher 和sendRedirect到底有什么区别

请叫我百度 2015-11-25 22:10:49
sendRedirect重定向之后能不能收到 requset.getParameter(“值”)里面的值??请求转发能不能收到 requset.getParameter(“值”)里面的值??   请求重定向不带任何参数?(除了地址栏里用"?"传参)请求转发呢,request和session的值都能在另一页面获取么????
查看完整描述

5 回答

已采纳
?
sxian_wang

TA贡献16条经验 获得超8个赞

回来填坑。先说答案:前一题选D,后一题选A。我们来看下getRequestDispatche()和sendRedirect():
       getRequestDispatcher()前面是什么?request!既然是request,它必然是属于服务器端的逻辑。而在这里,getRequestDispatcher()的作用就是转发请求。完整的来讲,一个请求包括request和response这两个参数,所以在getRequestDispatcher()后面接了一个forward(resquest,response);把这个请求转发到了另个页面。这里,一定要明白转发这两个字:对原有的对象不进行修改,从A拿到B,这叫转发,它是一个服务器的内部行为。所以在a.jsp收到转发的request后,该requset还是有key为name的这个对象。你用getParameter("name")自然能够获取到value,也就是sase;

       再来看看sendRedircet()。类似的,sendRedirect()前面是response对象。什么是response?你可以简单的理解为是服务器想告诉客户端(在这里是浏览器)的一系列信息。那么,sendRedirect()这个动作服务器想告诉客户端什么信息呢?重定向!那什么是重定向又是什么呢?你可以理解为浏览器根据服务器的响应信息重新向某个URL发起一次新的请求,而这个URL也是服务器告诉浏览器的,在这里就是sendRedirect()中的参数。也就是说,重定向是一个客户端行为,对应的URL地址栏会发生变化。这和你自己在地址栏输入这个URL再回车,并没有什么卵的区别。

       明白了重定向的概念,我们回到你的题目上:重定向是客户端行为,重新向某个URL发起请求,该请求的request和response信息都是新的,和上一次请求的request、response没有一毛钱的关系。所以,重定向以后,在a.jsp页面里面你收到request和response都是很干净的,啥都没携带,自认也没有name这个参数,所以你这时候用getParameter()找不到name,自然给你返回了一个null值。显示在页面上也是null。

       所以前一题选D,后一题选A。

查看完整回答
2 反对 回复 2015-11-26
?
HansonQ

TA贡献223条经验 获得超56个赞

请求转发:request.getRequestDispatcher(“/xx.jsp”).forward(request,response);可以实现request域对象数据共享(这一点很重要,日后学springmvc或者其他视图框架会用到),地址栏不会反生变化(也就是一个请求)。

重定向:地址栏发生变化,request不能共享,两次请求

查看完整回答
反对 回复 2015-11-26
?
慕男婶

TA贡献98条经验 获得超73个赞

转发:request.getRequestDispatcher(“/xx.jsp”).forward(request,response); 其特点是:地址栏无变化,始终是一个请求,转发的对象可以是本工程内的任何页面。

 重定向:就相当于客户端向服务器请求时,服务器响应给客户端一个新的URL浏览器就把请求传递个一个新的页面 。特点是:地址发生了变化,重定向的范围没有限制。

查看完整回答
反对 回复 2015-11-26
?
sxian_wang

TA贡献16条经验 获得超8个赞

早上起来答。。。

查看完整回答
反对 回复 2015-11-26
?
请叫我百度

TA贡献5条经验 获得超1个赞

5655c5510001b8f005000193.jpg

5655c5510001875305000381.jpg

具体就是这两个问题  ,求帮忙解释一下为什么?

查看完整回答
反对 回复 2015-11-25
  • 5 回答
  • 1 关注
  • 2795 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信