本章目标
掌握Servlet服务器端跳转及客户端跳转的使用;
掌握RequestDispatcher接口的使用。
Servlet跳转
从一个JSP或者是一个HTML页面可以通过表单或超链接跳转进Servlet,那么从Servlet也可以跳转到其他的Servlet、JSP或其他页面。
两种跳转形式:
客户端跳转
服务器端跳转
客户端跳转
在Servlet中如果要想进行客户端跳转,直接使用HttpServletResponse接口的sendRedirect()方法即可,但是需要注意的是,此跳转只能传递session范围的属性,而无法传递request范围的属性。
客户端跳转
package cn.demo; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ClientRedirectDemo extends HttpServlet {//继承HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理服务 request.getSession().setAttribute("name", "chaoyi");//设置session属性 request.setAttribute("info", "www.baidu.com");//设置request属性 response.sendRedirect("demo.jsp");//页面跳转 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理服务 this.doGet(request, response);//调用doGet() } }
配置web.xml
<servlet><!-- 定义servlet --> <servlet-name>client</servlet-name><!-- 与servlet-mapping对应 --> <servlet-class>cn.demo.ClientRedirectDemo</servlet-class><!-- 定义包.类名称 --> </servlet> <servlet-mapping><!-- 映射路径 --> <servlet-name>client</servlet-name><!-- 与servlet相对应 --> <url-pattern>/030907/ClientRedirectDemo</url-pattern><!-- 页面的映射路径 --> </servlet-mapping>
接收属性
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%> <html> <head> <title>接收属性</title> </head> <% request.setCharacterEncoding("utf-8"); %> <body> <h3>session 属性:<%=session.getAttribute("name") %></h3> <h3>request 属性:<%=request.getAttribute("info") %></h3> </body> </html>
效果图:
服务器端跳转
在Servlet中没有像JSP中的“<jsp:forward>”指令,所以,如果要想执行服务器端跳转的话,就必须依靠RequestDispatcher接口完成,此接口中提供了如下的两个方法:
public void forward(ServletRequest request,ServletResponse response) throws ServletException,IOException
public void include(ServletRequest request,ServletResponse response) throws ServletException,IOException
使用RequestDispatcher接口的forward()方法就可以完成跳转功能的实现,但是如果要想使用此接口还需要使用ServletRequest接口提供的如下方法进行实例化
public RequestDispatcher getRequestDispatcher(String path)
使用服务器端跳转
package cn.demo; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServerRedirectDemo extends HttpServlet {//继承HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理服务 request.getSession().setAttribute("name", "chaoyi");//设置session属性 request.setAttribute("info", "www.baidu.com");//设置request属性 //实例化RequestDispatcher对象,同时指定跳转路径 RequestDispatcher rd=request.getRequestDispatcher("demo.jsp"); rd.forward(request, response);//服务器跳转 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//处理服务 this.doGet(request, response);//调用doGet() } }
配置web.xml
<servlet><!-- 定义servlet --> <servlet-name>servlet</servlet-name><!-- 与servlet-mapping对应 --> <servlet-class>cn.demo.ServerRedirectDemo</servlet-class><!-- 定义包.类名称 --> </servlet> <servlet-mapping><!-- 映射路径 --> <servlet-name>servlet</servlet-name><!-- 与servlet相对应 --> <url-pattern>/030907/ServerRedirectDemo</url-pattern><!-- 页面的映射路径 --> </servlet-mapping>
效果图:
小结
掌握两种跳转的区别;
服务器端跳转可以传递request范围的属性,而客户端跳转无法传递request范围的属性。
相关推荐
servlet 跳转的几种情况 Servlet 跳转是指 Servlet 程序在执行过程中将控制权转移到另一个资源的过程,例如跳转到另一个 Servlet、JSP 或 HTML 页面。Servlet 跳转可以分为两大类:Redirect 跳转和 Forward 跳转。 ...
### jsp与Servlet跳转实例:深入理解信息提交与页面跳转 在Web开发中,JSP(Java Server Pages)和Servlet是两个重要的技术组件,它们共同协作来处理客户端请求并生成动态网页内容。本文将详细解析一个具体的案例...
### jsp与Servlet跳转详解 #### 一、引言 在Java Web开发中,页面间的跳转是一项基本且重要的功能。本篇文章将通过具体的示例来深入探讨JSP与Servlet之间的跳转机制,帮助读者更好地理解其工作原理及应用场景。 #...
JSP与Servlet跳转实例借鉴 本资源是关于JSP与Servlet跳转实例的借鉴,通过三个JSP页面(Index.jsp、Input.jsp、Confirm.jsp)和三个Servlet(InputServlet、ConfirmServlet、ResultServlet)来实现用户登录验证和...
在Servlet中,有两种主要的跳转方式:`RequestDispatcher.forward()`和`ServletResponse.sendRedirect()`。这两种方法在处理客户端请求时有不同的行为和应用场景。 1. `RequestDispatcher.forward()` - `forward()...
本篇文章将详细讲解Servlet中跳转页面的两种主要方法:redirect(重定向)和forward(转发),以及在JSP中如何实现类似操作。 1. **Servlet中的跳转** - **Redirect(重定向)** 重定向是通过`response....
本篇主要介绍如何使用Servlet实现页面跳转,这对于初学者来说是非常基础且重要的概念。 首先,我们要理解Servlet的工作原理。当客户端(通常是浏览器)向服务器发送一个HTTP请求时,服务器会调用相应的Servlet来...
- 在Servlet中根据需求选择使用`sendRedirect`或`forward`方法进行跳转或转发。 通过这个简单的Java Web学习demo,开发者可以了解Servlet和JSP协同工作的方式,以及如何在它们之间传递数据。这有助于理解Web应用的...
本示例项目"Servlet实现简单登录页面跳转.zip"是关于如何利用Servlet来实现一个基本的用户登录功能,包括从HTML登录页面接收数据、验证用户凭证以及根据登录结果进行页面重定向。 1. **Servlet基础** - Servlet是...
当我们说一个Servlet是线程不安全的,意味着在多线程环境下,该Servlet的行为可能会出现问题,如数据混乱、竞态条件或死锁。 首先,让我们深入理解Servlet的工作原理。当一个HTTP请求到达Web服务器,服务器会创建一...
在实际开发中,理解和掌握Servlet与JSP的跳转机制以及它们如何协同工作,对于构建高效、可维护的Java Web应用至关重要。同时,合理利用Eclipse或MyEclipse这样的IDE能提升开发效率,更好地实现需求。
本文实例总结了jsp和servlet中实现页面跳转的方式。分享给大家供大家参考,具体如下: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 <% ...
5. RequestDispatcher:用于转发或重定向请求,比如从一个Servlet跳转到另一个Servlet或JSP页面。 通过实践和练习,你可以在一天内熟悉Servlet的基本用法,并逐步掌握更高级的概念和技术,如MVC架构、Spring MVC...
Servlet 可以跳转到其他页面或 Servlet,在本笔记中,我们详细介绍了 Servlet 跳转的机制,并讨论了 Servlet 跳转的优缺点。 三、JSP JSP(Java Server Pages)是 Java 语言在 Web 开发方面的动态网页技术,允许...
在这个“关于servlet的页面跳转经典例子”中,我们将探讨如何在Servlet中实现页面重定向和请求转发,同时也会涉及到数据库连接的相关知识。 1. **Servlet中的页面跳转** - **请求转发(Request Forward)**:在...
总结来说,通过Servlet获取下拉列表的值并跳转到相关页面涉及以下几个步骤: 1. 在HTML页面中创建下拉列表,并指定一个name属性。 2. 编写Servlet,使用HttpServletRequest的getParameter()方法获取下拉列表的值。 3...
- 例如,从一个Servlet跳转到另一个Servlet: ```java RequestDispatcher dispatcher = request.getRequestDispatcher("/nextServlet"); dispatcher.forward(request, response); ``` #### 四、Cookie与...
在Servlet中,跳转分为两种主要类型:请求转发(Request Forward)和重定向(Redirect)。这两种方法都是在服务器端完成的,但它们的工作机制和效果有所不同。 1. 请求转发(Request Forward) - **概念**:请求...
本笔记涵盖了Java Web开发的基本概念、Servlet、JSP等核心技术,并对Java Web项目目录结构、Servlet生命周期、Servlet处理表单、Servlet跳转、状态管理、作用域对象等进行了详细的介绍。 一、概述 Java Web开发是...