简述Servlet使用sendRedirect()和forward()两种方法的异同点
展开全部
相同点:都能实现页面跳转或者是服务器资源的跳转;
不同点:1、sendRedirect(“目的地”) 是response 对象的方法,forward(request,response)是request.getRequestDispatcher("目的地") 方法 返回的对象 requestDispatcher 的方法;
2、sendRedirect() 在客户端运行,会产生新的请求,地址栏显示新地址,forward()在服务端运行,地址栏的地址不变;
3、sendRedirect() 跳转之后,不能获取request中的对象,而forward()可以获取;
4、forward()速度更快。
不同点:1、sendRedirect(“目的地”) 是response 对象的方法,forward(request,response)是request.getRequestDispatcher("目的地") 方法 返回的对象 requestDispatcher 的方法;
2、sendRedirect() 在客户端运行,会产生新的请求,地址栏显示新地址,forward()在服务端运行,地址栏的地址不变;
3、sendRedirect() 跳转之后,不能获取request中的对象,而forward()可以获取;
4、forward()速度更快。
展开全部
* 请求转发与重定向的区别
* 1.请求转发数据不会丢失,重定向数据会丢失
* 2.请求转发URL地址栏不变,重定向URL地址栏变化可以防止表单重复提交
* 3.请求转发不加上web项目名称,重定向需要加上web项目名
* 4.请求转发只能在一个web应用程序内转发,重定向可以到其他应用程序
* 5.请求转发后面调用的方法类别和前面的相同,重定向会全部变为get方法,和前面没有关系
* 请求转发是一次请求,重定向为多次请求生成多个request对象,但是form表单第一次如果是post方法
* 当重定向是,再次生成新的request时,则变成默认的doget方法
* 1.请求转发数据不会丢失,重定向数据会丢失
* 2.请求转发URL地址栏不变,重定向URL地址栏变化可以防止表单重复提交
* 3.请求转发不加上web项目名称,重定向需要加上web项目名
* 4.请求转发只能在一个web应用程序内转发,重定向可以到其他应用程序
* 5.请求转发后面调用的方法类别和前面的相同,重定向会全部变为get方法,和前面没有关系
* 请求转发是一次请求,重定向为多次请求生成多个request对象,但是form表单第一次如果是post方法
* 当重定向是,再次生成新的request时,则变成默认的doget方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sendRedirect是跳转。
forward()是转发。
简单打个比方
A 页 到B页 到C页。三个页。A是起始。当B接收到A来的数据之后。
如果在B中用跳转的方式到C。那么在C中访问不到A的request
如果在B中用转发的方式到C。那么在C中可以访问A的request
转发就是原样再给别人。邻居送你家了一盒月饼,但是你家太多了。直接再把这盒月饼给别人。实际上别人吃的是你邻居家送的月饼。
forward()是转发。
简单打个比方
A 页 到B页 到C页。三个页。A是起始。当B接收到A来的数据之后。
如果在B中用跳转的方式到C。那么在C中访问不到A的request
如果在B中用转发的方式到C。那么在C中可以访问A的request
转发就是原样再给别人。邻居送你家了一盒月饼,但是你家太多了。直接再把这盒月饼给别人。实际上别人吃的是你邻居家送的月饼。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
forword()页面跳转时可以传递参数而sendRedirect()是重定向不能传递参数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询