关于页面跳转

关于页面跳转

实在不知道sendRedirect 和getRequestDispacher的区别

能详细解释给几个例子吗?

谢谢。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,可以这样理解~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-07-15 11:58:22

同学你好,

首先我们要知道:

(1)request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 这个是在服务端运行的,对浏览器来说是透明的。

(2)response.sendRedirect()是重新定向,前后页面不是一个request。而这个是在浏览器端运行的。

      1) redirect 方式

  response.sendRedirect("/a.jsp");

   页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:

  response.sendRedirect("URL");

   跳转后浏览器地址栏变化。

   这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来 传递。所以该方式只适用于无传值跳转。

  2) forward方式

  request.getRequestDispatcher("/路径(可以是jsp路径也可以是servlet)") .forward(request, response);

如:

request.getRequestDispatcher("/2.jsp)") .forward(request, response);
request.getRequestDispatcher("/servlet/HomeServlet)") .forward(request, response);

  Servlet页面跳转的路径是相对路径。forward方式只能跳转到本web应用中的页面上。

  跳转后浏览器地址栏不会变化。

  使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 Mengzi210 #1
    可以理解是不是,forward是传值,redict就是实现页面跳转呢?
    2019-07-15 18:24:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师