<jsp:forward> 使用同一个 request ,是在服务器端跳转,浏览器显示的是第一个页面的名字,因为客户端(浏览器)不知道它在服务器端跳转了。
Response.sendRedirect 是两个不同的 request ,是在客户端跳转,浏览器显示的是跳转后的页面的名字。因为它是从客户端跳转到第二个页面的。
使用 forward 时,由于只是发送一次 request 请求, request 设置的属性( setAttribute )依然能保留在下一个页面。
使用 sendRedirect 时,由于发送两次 request 请求,所以在下一个不能获取 request 属性。但可以通过重写 URL 的方式将内容传递过去。
下面举例说明:
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")%>
redwater
daguaiwan
null
null
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可以使用<jsp:forward page=”URL” />或者response.sendRedirect(URL)都可以,它们之间的区别上面已经说明了。
从Servlet跳转Jsp:
² getRequestDispatcher的forward(request, response)方法,这里也只是发送了一次请求,可以在下一个页面接受request设置的属性。
² response.sendRedirect(URL),这里发送了两次请求,不可以在下一个页面接受request设置的属性。
例子如下:
servlettiane.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
%>
<jsp:forward page=
"/tiane" />
servletbama.jsp
<%request.setAttribute(
"river",
"redwater");
request.setAttribute(
"country",
"daguaiwan");
response.sendRedirect(
"/ForwardRedirect/tiane");
%>
Tiane.java
publicclass Tiane extends HttpServlet {
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.sendRedirect("/ForwardRedirect/fengshan.jsp");
this.getServletConfig().getServletContext()
.getRequestDispatcher("/fengshan.jsp").forward(request, response);
}
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
再在web.xml中配置servlet:
<servlet>
<servlet-name>tiane</servlet-name>
<servlet-class>com.dvnchina.test.Tiane</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>tiane</servlet-name>
<url-pattern>/tiane</url-pattern>
</servlet-mapping>
分享到:
相关推荐
### jsp与Servlet跳转实例:深入理解信息提交与页面跳转 在Web开发中,JSP(Java Server Pages)和Servlet是两个重要的技术组件,它们共同协作来处理客户端请求并生成动态网页内容。本文将详细解析一个具体的案例...
### jsp与Servlet跳转详解 #### 一、引言 在Java Web开发中,页面间的跳转是一项基本且重要的功能。本篇文章将通过具体的示例来深入探讨JSP与Servlet之间的跳转机制,帮助读者更好地理解其工作原理及应用场景。 #...
Servlet 跳转可以分为 Redirect 跳转和 Forward 跳转两种,JSP 跳转也可以使用这两种方式,但是需要注意 JSP 的特殊性。了解 Servlet 跳转的几种情况,可以帮助开发者更好地控制程序的流程和数据传递。
在实际开发中,理解和掌握Servlet与JSP的跳转机制以及它们如何协同工作,对于构建高效、可维护的Java Web应用至关重要。同时,合理利用Eclipse或MyEclipse这样的IDE能提升开发效率,更好地实现需求。
本示例"java-web学习demo--最简单的servlet jsp跳转传值"主要展示了如何通过Servlet处理HTTP请求,并将数据传递到JSP页面进行展示。下面将详细讲解这个过程。 1. **Servlet**: Servlet是Java编程语言中实现服务器...
在JSP中,我们通常会定义`<jsp:include>`、`<jsp:forward>`等动作元素来实现页面的组织和跳转。 二、Servlet Servlet是Java EE规范中的一部分,它是一个Java类,用于处理HTTP请求并生成响应。当用户向服务器发送...
JSP与Servlet跳转实例借鉴 本资源是关于JSP与Servlet跳转实例的借鉴,通过三个JSP页面(Index.jsp、Input.jsp、Confirm.jsp)和三个Servlet(InputServlet、ConfirmServlet、ResultServlet)来实现用户登录验证和...
**JSP和Servlet基础知识详解** ...理解并掌握这些基本概念对于JSPServlet新手来说至关重要,它们构成了开发Web应用的基础。在实际开发中,根据需求选择合适的方法,可以构建高效、功能丰富的Web应用。
【基于jsp+servlet+Ajax异步登陆模拟web项目】是一个典型的Web开发实例,它整合了三种核心技术:JavaServer Pages(JSP)、Servlet以及Asynchronous JavaScript and XML(Ajax)。这个项目的核心目的是实现用户登录...
6. **请求处理与转发**: 在Servlet中,通过`request.getRequestDispatcher()`方法转发请求到特定的JSP页面,或者使用`response.sendRedirect()`重定向到其他URL,实现页面间的跳转。 7. **EL(Expression Language...
本文实例总结了jsp和servlet中实现页面跳转的方式。分享给大家供大家参考,具体如下: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 <% ...
JSP 和 Servlet 中实现页面跳转的方式实例总结 在 web 开发中,页面跳转是一个非常常见的需求,JSP 和 Servlet 是 Java Web 开发中两个最基本的组件,了解它们如何实现页面跳转是非常必要的。本文将根据 JSP 和 ...
而"CeShi"可能是项目的源代码文件夹,包含JSP文件(如login.jsp、register.jsp)、Servlet文件(如LoginServlet.java、RegisterServlet.java)和其他辅助类。JSP文件通常负责展示界面,Servlet文件则负责处理后台...
在IT行业中,Web开发是至关重要的领域,而Java平台上的Servlet和JSP(JavaServer Pages)是构建动态网站的常用技术。本示例探讨的是如何使用这两种技术来实现一个简单的登录功能,这是一个基础但关键的功能,对于...
史上最简单的jsp+servlet+jdbc实现CRUD项目,已经经历了千锤百炼的测试与修改,健壮性一级棒!没有任何问题。...输入正确进入welcome页然后跳到查看学生信息页,输入错误进error.jsp,然后自动跳转回登录页。
在"韩顺平"的教程中,你可能会看到如何结合实际的web项目结构,将Servlet与JSP页面配合使用,实现动态内容生成和页面跳转。通常,Servlet负责业务逻辑处理和数据准备,然后通过请求转发或重定向将结果展示在JSP页面...
在Java Web开发中,JSP(JavaServer Pages)和Servlet是两种重要的技术,它们共同构成了动态网站的基础。本文将深入探讨这两个技术的核心概念、应用场景以及它们之间的交互。 **JSP技术** JSP是一种用于创建动态...
了解如何优化JSP和Servlet的性能,如避免不必要的JSP页面跳转,合理使用Session,以及使用缓存等技术,都是提升Web应用性能的重要手段。 9. 安全性: 在开发过程中,考虑安全性问题也是必要的,比如防止SQL注入、...
`RequestDispatcher.forward()` 是一种服务器端内部的重定向方式,其特点是将请求转发到应用服务器内部的另一个资源(可以是JSP或Servlet)。这种方式不会改变客户端浏览器的地址栏显示,同时可以保留请求域中的数据...
5. **结果反馈**:根据数据库操作的结果,Servlet会决定是成功跳转到欢迎页面,还是返回错误信息到JSP页面。例如,如果注册成功,用户会被重定向到主页;如果登录失败,错误消息会在JSP页面上显示。 6. **安全考虑*...