首页 > 试题广场 >

在Servlet里,能实现重定向的方法有?

[单选题]
在Servlet里,能实现重定向的方法有
  • 运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法
  • 运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法
  • .运用javax.servlet.RequestDispatcher接口的forward方法
  • 运用javax.servlet.ResponseDispatcher接口的forward方法
推荐
B
A:javax.servlet.http.HttpServletRequest接口不存在sendRedirect方法
D:javax.servlet.ResponseDispatcher接口不存在forward方法

HttpServletResponse.sendRedirect()方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如 response.sendRedirect("http://java.sun.com")也可以使用相对的URL,是请求转发,前后页面共享一个request  将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置HTTP响应头信息的实现。 
RequestDispatcher.forward()方法将当前的request和response重定向到该 RequestDispacher指定的资源。是重新定向,前后页面不是一个request。
编辑于 2015-02-04 16:13:41 回复(19)
答案:B

B是重定向,C是请求转发,A和D是错误的,不存在对应的方法
发表于 2015-01-15 18:25:10 回复(0)

转    发-----你找我借钱,我没钱,但是我可以帮你去找别人借钱。(再“借钱”这个动作由我去执行)

重定向-----你找我借钱,我没钱,但是我让你去找别人借钱。(再“借钱”这个动作由你自己去执行)

怎么样,各位大佬,够形象了吧!
发表于 2017-08-27 14:36:46 回复(1)
重定向,需要把新地址返回客户端,响应客户当然是response啦;
跳转,跳转不改变路径,是内部进行的跳转,所以不需要响应来执行,所以request咯。
发表于 2018-05-26 12:03:06 回复(0)
转发( forword):一次请求,地址栏不会变,效率更高,只能跳转本项目
重定向(sendRedirect):两次请求,地址栏会变成第二次请求的地址,效率稍低,可以跳转任何项目
发表于 2018-03-07 10:39:38 回复(0)
下面是自己的个人博客的一篇文章
理解这两个概念,只需明确一点:一个是发生在客户端的,一个是发生在服务器端。

重定向是客户端在第一个请求完成之后向服务器另外发送一个资源请求,前后两次是两个不同的请求,request对象不是一个对象,所以使用重定向后,不能通过request获取到前一个请求传递的参数。

而转发是发生在服务器端的,服务器根据转发提供的url直接访问目标资源,读取之后响应给浏览器,而这个过程浏览器是不知情的,整个过程只是一次请求,浏览器的地址不会改变。

 

重定向可以请求当前web应用以外的资源,比如在百度应用中,我可以请求谷歌的资源,前提只要网络是通的。转发当然无法做到。
--------------------- 
作者:我想静静525 
来源:CSDN 
原文:https://blog.csdn.net/lycyl/article/details/88418177 
版权声明:本文为博主原创文章,转载请附上博文链接!
发表于 2019-03-12 12:47:50 回复(0)
单词含义:
redirect:使改方向,重新寄送,
forward:向前的,运送,转寄
发表于 2017-12-20 22:46:56 回复(0)
request里面有个forward方法
request.getRequestDispatcher("/dis2").forward(request, response);
是请求转发。 地址栏不发生改变

response里面有个sendRedirect()方法。 会发生重定向,地址栏会发生改变。
发表于 2017-11-19 20:36:07 回复(1)
我收到请求request之后,指挥你去重定向,属于response范畴。故属于javax.servlet.http.HttpServletResponse接口的方法哦。
发表于 2016-11-23 22:07:07 回复(0)
重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。 怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择转发。 转发和重定向的区别 不要仅仅为了把变量传到下一个页面而使用session作用域,那会无故增大变量的作用域,转发也许可以帮助你解决这个问题。 重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。 转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
发表于 2017-03-06 04:07:33 回复(3)
关于重定向和服务器内部转发就像你去找辅导员盖章,而辅导员让你去找***盖章,然后你自己去找***,另外一种情况就是辅导员让你坐下来等着,他给你去找***盖章期间不用你动手
发表于 2019-09-19 01:02:38 回复(0)
B
发表于 2019-05-04 21:04:41 回复(0)
B sendredirect
编辑于 2019-05-01 09:26:22 回复(0)
运用javax.servlet.RequestDispatcher接口的forward方法是请求转发

发表于 2019-02-27 16:23:37 回复(0)
sendredirect是请求转发不对,是重定向。forword是请求转发
发表于 2018-02-10 13:13:48 回复(0)
redirect(重定向):发起一个新的request,可以访问其他应用程序的资源(跳转其他网站),由新页面response forward(转发):在应用程序内访问另外一个url地址,将获取到的资源response,浏览器不知道资源来自哪里所以地址栏不变
发表于 2017-10-22 00:53:44 回复(0)
请求转发是request,重东西是response
发表于 2017-08-17 16:57:09 回复(1)
在Servlet里,能实现重定向的方法有 运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法.
sendRedirect方法 是重定向
forward方法  是请求转发

发表于 2016-12-06 08:19:27 回复(0)
B
发表于 2014-12-29 10:46:52 回复(0)