Response.sendRedirect是两个不同的request,是在客户端跳转,浏览器显示的是跳转后的页面的名字。因为它是从客户端跳转到第二个页面的。使用sendRedirect时,由于发送两次request请求,所以在下一个不能获取request属性
使用forward时,由于只是发送一次request请求,request设置的属性(setAttribute)依然能保留在下一个页面。
下面举例说明:
tian.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
%>
<jsp:forward page=
"fengshan.jsp" />
donglan.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
%>
<a href=
"fengshan.jsp">fengshan</a>
bama.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
response.sendRedirect(
"fengshan.jsp");
%>
fengshan.jsp
<%=request.getAttribute(
"river")%><br/>
<%=request.getAttribute(
"country")%>
- http://localhost:8080/ForwardRedirect/tiane.jsp 跳转后结果为:
- redwater
- daguaiwan
-
- http://localhost:8080/ForwardRedirect/donglan.jsp 跳转后结果为:
- null
- null
-
- http://localhost:8080/ForwardRedirect/bama.jsp 跳转后结果为:
- null
- null
结果分析: tiane.jsp是通过forward跳转到fengshan.jsp的,这两个页面享用的是同一个request,故fengshan.jsp可以接收到tiane.jsp通过 request设置的属性。而donglan.jsp是通过href发送了另外的request请求,bama.jsp是通过sendRedirect跳转,用的也是另外的request请求,故fengshan.jsp不可以接收到这两个页面通过 request设置的属性。 Jsp和Servlet之间的跳转:从Jsp跳转Servlet可以使用或者response.sendRedirect(URL)都可以,它们之间的区别上面已经说明了。 从Servlet跳转Jsp: getRequestDispatcher的forward(request, response)方法,这里也只是发送了一次请求,可以在下一个页面接受request设置的属性。 ² response.sendRedirect(URL),这里发送了两次请求,不可以在下一个页面接受request设置的属性。
分享到:
相关推荐
在Web开发中,"forward"和"sendRedirect...总结来说,`jsp:forward`和`response.sendRedirect`各有优势,选择哪种方式取决于具体的需求和场景。理解它们的工作原理和差异,可以帮助我们更合理地设计Web应用程序的流程。
sendRedirect()和forward()方法都是Servlet编程中常用的方法,它们可以将客户端的请求重定向或转发到其他的资源,如Servlet、JSP页面或HTML文件中。但是,这两个方法之间存在着本质上的区别。 首先,让我们来看一下...
在Java Web开发中,"forward-sendRedirect"是一个关键的概念,主要涉及到Servlet和JSP之间的页面跳转技术。这里我们将深入探讨这两个方法的工作原理及其在实际应用中的差异。 首先,我们来了解一下`forward()`方法...
页面之间的跳转可以通过两种方式实现:forward和sendRedirect。...在Servlet中使用RequestDispatcher的forward方法,要跳转到userlist.jsp,可以写: 代码如下: RequestDispatcher rd = request.getRequestDispatcher
本实例将深入探讨`jsp:forward`方法的使用及其背后的原理,帮助你更好地理解和应用这一功能。 `jsp:forward`标签通常用在JSP页面中,它的主要作用是将当前请求转发到另一个资源,如另一个JSP页面、Servlet或者静态...
它使用`RequestDispatcher`接口的`forward()`方法,将当前请求转发到另一个资源,如JSP或Servlet。这意味着浏览器地址栏中的URL不会改变,因为整个过程对用户透明。这种技术适用于需要多个组件协作处理一个请求的...
重要的是,当使用sendRedirect时,浏览器地址栏中的URL会发生变化,这与<jsp:forward>标签直接在服务器端进行转发不同,后者不会改变浏览器地址栏中的地址。 遇到sendRedirect不跳转时,可能存在以下几个原因: 1....
与`sendRedirect`不同,`<jsp:forward>`不会创建一个新的请求,而是将当前请求的控制权转移给另一个资源,这意味着所有请求参数以及`request`和`session`作用域中的属性都会被保留并传递给目标资源。 这种跳转方式...
通过该方法可以将当前请求转发到另一个资源(如Servlet或JSP页面)进行处理,并且转发过程中会保留原请求的数据和状态。这种机制对于构建复杂的应用流程非常有用,它可以帮助开发者更好地组织代码结构,提高程序的可...
这里主要介绍五种常见的JSP页面跳转方法,包括RequestDispatcher.forward()、response.sendRedirect()、<jsp:forward page="" / >、Meta标签以及JavaScript的location对象。 1. RequestDispatcher.forward() 这种...
RequestDispatcher.forward() 方法可以用于将请求从当前的 Servlet 或 JSP 转发到另一个 Servlet、JSP 或普通 HTML 文件,而 response.sendRedirect() 方法可以用于将用户重定向到另一个页面。jsp:forward 是一种...
### JSP面试常见问题解析:Forward与SendRedirect的区别及Include的理解 #### 1. Forward与SendRedirect的区别 在Web开发中,特别是在Java Server Pages (JSP)与Servlets结合使用的场景下,`forward`与`...
### JSP页面跳转方法详解 #### 一、概述 JSP(Java Server Pages)是一种动态网页技术标准,被广泛应用于构建动态网站和Web应用程序。在JSP开发中,页面跳转是一项非常基础且重要的功能,它使得用户能够在不同的...
本文将详细介绍JSP页面跳转的五种方法:`RequestDispatcher.forward()`、`response.sendRedirect()`、`jsp:forward`、修改HTTP header `Location`以及利用`<meta>`标签实现自动跳转。 #### 1. RequestDispatcher....
还可以实现使用jsp:forward动作做页面跳转时传递参数,如下:<jsp:forward page="Relative URL"> <jsp:param name="paramname" value="paramvalue" /> </jsp:forward> 通过这种方式和一般的表单参数一样的,也可以...
9. 重定向(forward与sendRedirect)区别 6 10. JSP和Servlet的区别 7 11. Cookie学习 7 12. Session学习 9 Servlet技术总结 9 1. Servlet生命周期 9 2. Servlet的方法说明: 10 3. Servlet 在web.xml中的配置 10 ...
本文将详细介绍五种常用的JSP页面跳转方法:`RequestDispatcher.forward()`、`response.sendRedirect()`、`jsp:forward`、`request.getRequestDispatcher().include()`以及`<jsp:include>`。这些方法各有特点,适用...
jsp 转发是通过 `<jsp:forward>` 元素或 `request.getRequestDispatcher("apage.jsp").forward(request, response)` 方法来实现的。转发的主要特点是,request 中存放的变量不会失效,这意味着前一个页面中的变量...