`
chaoyi
  • 浏览: 309593 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Servlet跳转

 
阅读更多

本章目标
掌握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范围的属性。

 

 

  • 大小: 16.5 KB
  • 大小: 18.1 KB
1
0
分享到:
评论

相关推荐

    servlet跳转的几种情况

    servlet 跳转的几种情况 Servlet 跳转是指 Servlet 程序在执行过程中将控制权转移到另一个资源的过程,例如跳转到另一个 Servlet、JSP 或 HTML 页面。Servlet 跳转可以分为两大类:Redirect 跳转和 Forward 跳转。 ...

    jsp与Servlet跳转实例

    ### jsp与Servlet跳转实例:深入理解信息提交与页面跳转 在Web开发中,JSP(Java Server Pages)和Servlet是两个重要的技术组件,它们共同协作来处理客户端请求并生成动态网页内容。本文将详细解析一个具体的案例...

    jsp与Servlet跳转

    ### jsp与Servlet跳转详解 #### 一、引言 在Java Web开发中,页面间的跳转是一项基本且重要的功能。本篇文章将通过具体的示例来深入探讨JSP与Servlet之间的跳转机制,帮助读者更好地理解其工作原理及应用场景。 #...

    jsp与Servlet跳转实例借鉴.pdf

    JSP与Servlet跳转实例借鉴 本资源是关于JSP与Servlet跳转实例的借鉴,通过三个JSP页面(Index.jsp、Input.jsp、Confirm.jsp)和三个Servlet(InputServlet、ConfirmServlet、ResultServlet)来实现用户登录验证和...

    Servlet跳转方式sendReDirect

    在Servlet中,有两种主要的跳转方式:`RequestDispatcher.forward()`和`ServletResponse.sendRedirect()`。这两种方法在处理客户端请求时有不同的行为和应用场景。 1. `RequestDispatcher.forward()` - `forward()...

    servlet跳转页面的几种方法

    本篇文章将详细讲解Servlet中跳转页面的两种主要方法:redirect(重定向)和forward(转发),以及在JSP中如何实现类似操作。 1. **Servlet中的跳转** - **Redirect(重定向)** 重定向是通过`response....

    servlet实现的页面跳转

    本篇主要介绍如何使用Servlet实现页面跳转,这对于初学者来说是非常基础且重要的概念。 首先,我们要理解Servlet的工作原理。当客户端(通常是浏览器)向服务器发送一个HTTP请求时,服务器会调用相应的Servlet来...

    java-web学习demo--最简单的servlet jsp跳转传值

    - 在Servlet中根据需求选择使用`sendRedirect`或`forward`方法进行跳转或转发。 通过这个简单的Java Web学习demo,开发者可以了解Servlet和JSP协同工作的方式,以及如何在它们之间传递数据。这有助于理解Web应用的...

    servlet实现简单登录页面跳转.zip

    本示例项目"Servlet实现简单登录页面跳转.zip"是关于如何利用Servlet来实现一个基本的用户登录功能,包括从HTML登录页面接收数据、验证用户凭证以及根据登录结果进行页面重定向。 1. **Servlet基础** - Servlet是...

    servlet 模拟

    当我们说一个Servlet是线程不安全的,意味着在多线程环境下,该Servlet的行为可能会出现问题,如数据混乱、竞态条件或死锁。 首先,让我们深入理解Servlet的工作原理。当一个HTTP请求到达Web服务器,服务器会创建一...

    servlet/jsp跳转

    在实际开发中,理解和掌握Servlet与JSP的跳转机制以及它们如何协同工作,对于构建高效、可维护的Java Web应用至关重要。同时,合理利用Eclipse或MyEclipse这样的IDE能提升开发效率,更好地实现需求。

    jsp和servlet中实现页面跳转的方式实例总结

    本文实例总结了jsp和servlet中实现页面跳转的方式。分享给大家供大家参考,具体如下: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 &lt;&#37; ...

    servlet学习

    5. RequestDispatcher:用于转发或重定向请求,比如从一个Servlet跳转到另一个Servlet或JSP页面。 通过实践和练习,你可以在一天内熟悉Servlet的基本用法,并逐步掌握更高级的概念和技术,如MVC架构、Spring MVC...

    Java-Web学习笔记.docx

    Servlet 可以跳转到其他页面或 Servlet,在本笔记中,我们详细介绍了 Servlet 跳转的机制,并讨论了 Servlet 跳转的优缺点。 三、JSP JSP(Java Server Pages)是 Java 语言在 Web 开发方面的动态网页技术,允许...

    关于servlet的页面跳转经典例子

    在这个“关于servlet的页面跳转经典例子”中,我们将探讨如何在Servlet中实现页面重定向和请求转发,同时也会涉及到数据库连接的相关知识。 1. **Servlet中的页面跳转** - **请求转发(Request Forward)**:在...

    servlet获得下拉列表的值,并跳转到相关页面

    总结来说,通过Servlet获取下拉列表的值并跳转到相关页面涉及以下几个步骤: 1. 在HTML页面中创建下拉列表,并指定一个name属性。 2. 编写Servlet,使用HttpServletRequest的getParameter()方法获取下拉列表的值。 3...

    一些 SERVLET 的笔记

    - 例如,从一个Servlet跳转到另一个Servlet: ```java RequestDispatcher dispatcher = request.getRequestDispatcher("/nextServlet"); dispatcher.forward(request, response); ``` #### 四、Cookie与...

    servlet的跳转

    在Servlet中,跳转分为两种主要类型:请求转发(Request Forward)和重定向(Redirect)。这两种方法都是在服务器端完成的,但它们的工作机制和效果有所不同。 1. 请求转发(Request Forward) - **概念**:请求...

    2023年JavaWeb学习笔记.docx

    本笔记涵盖了Java Web开发的基本概念、Servlet、JSP等核心技术,并对Java Web项目目录结构、Servlet生命周期、Servlet处理表单、Servlet跳转、状态管理、作用域对象等进行了详细的介绍。 一、概述 Java Web开发是...

Global site tag (gtag.js) - Google Analytics