浅议getRequestDispatcher()与sendRedirect()的区别

getRequestDispatcher()与sendRedirect()的区别

首先我们要知道它们的用法和部分原理:

(1)request.getRequestDispatcher("/路径(这个路径可以是jsp也可以是servlet)") .forward(request, response);
页面跳转:请求转发前后页面共享一个request ; 在服务端运行,可以让路径的页面获得数据,跳转后浏览器地址栏不变,只能在本web应用的页面中跳转。

(2) response.sendRedirect("/路径");
页面跳转:重定向,可以将页面跳转到任何页面,不一定局限于本web应用;跳转后浏览器地址栏变化;在浏览器端运行;前后页面的request不是同一个

理解的例子:简单的登录验证,有login.jsp,check.jsp,success.jsp三个页面,login.jsp获得浏览器页面输入的用户名和密码,check.jsp从login.jsp获得用户名和密码,并判断它们是否为空,判断用户名和密码是否正确,如果正确,就跳转到success.jsp页面。但此时success.jsp要求有欢迎用户名的语句(如欢迎欧阳)。此时区别就来了,如果用的是response.sendRedirect(),success.jsp用getParameter是不能获得用户名的,页面显示的是欢迎null,而此时地址栏的最后是success.jsp,而用request.getRequestDispatcher()是可以获得用户名的,页面显示的是欢迎欧阳,此时地址栏的最后是check.jsp,即跳转后地址栏不变,此方式是可以进行传值的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值