Servlet程序开发-- servlet跳转

跳转:服务器端,客户端

客户端跳转:<response.sendRedirect>地址栏跳转之后改变,无法传递request范围的属性

服务器端跳转:<jsp:forward>地址栏不改变,而且可以传递request范围的属性,属于无条件跳转,只要执行到了,立即执行跳转的操作

servlet之中也是可以跳转的,既然servlet本身存在HttpServletResonse对象,所以,直接通过此对象的sendRedirect方法就可以完成跳转操作。

客户端跳转实现:

info不能传递

package org.lxh.servletdemo ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class ClientRedirectDemo extends HttpServlet {
    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
        req.getSession().setAttribute("name","李兴华") ;
        req.setAttribute("info","MLDNJAVA") ;
        resp.sendRedirect("get_info.jsp") ;
    }
    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
        this.doGet(req,resp) ;
    }
}

servlet中没有<jsp:forward>指令,所以想执行跳转的话要使用RequestDispatcher完成。

RequestDispatcher是个接口,要想使用接口必须进行对象实例化操作,此时只能一看ServletRequest接口完成

info值可以传递

package org.lxh.servletdemo ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class ServerRedirectDemo extends HttpServlet {
    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
        req.getSession().setAttribute("name","李兴华") ;
        req.setAttribute("info","MLDNJAVA") ;
        RequestDispatcher rd = req.getRequestDispatcher("get_info.jsp") ;    // 准备好了跳转操作
        rd.forward(req,resp) ;    // 完成跳转
    }
    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
        this.doGet(req,resp) ;
    }
}

web.xml:

<servlet>
        <servlet-name>server</servlet-name>
        <servlet-class>
            org.lxh.servletdemo.ServerRedirectDemo
        </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>server</servlet-name>
        <url-pattern>/forward/ServerRedirectDemo</url-pattern>
    </servlet-mapping>

所以要传递request范围属性的话,就用服务器跳转,如果要保存session以上级别的值的话,就用客户端跳转。

服务器端跳转的应用比率90%以上,所以更重要。

时间: 2024-08-28 10:58:46

Servlet程序开发-- servlet跳转的相关文章

Servlet程序开发--Servlet简介

使用java语言开发的服务器端程序,可以生成动态web页,运行在服务器端,由服务器调用执行,是一种按照servlet标准开发的类. 先有servlet,后有jsp,jsp骨子里依然是servlet. CGI,公共网关接口,多进程的处理方式,Servlet是多线程处理方式,所以性能上比CGI强. 不管使用JSP,还是servlet,都是运行在服务器端,所以必须了解servlet的处理流程. 1. 客户端通过HTTP提出请求 2. web服务器接收请求并发送给servlet,如果没加载,服务器加载并

Servlet程序开发--Servlet 与 表单

servlet程序: doPost方法时为了防止表单提交时post方式的问题.否则只能处理get请求 package org.lxh.servletdemo ; import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ; public class InputServlet extends HttpServlet{ public void doGet(HttpServletRequest req,HttpSer

Servlet程序开发-- Servlet生命周期

生命周期是一个程序的存在周期,受容器管理,所以容器决定生命周期. 生命周期包括 加载,初始化,服务,销毁,卸载 5个部分 加载:第一次使用的时候加载 初始化:init方法, 失败的话,直接卸载,如果成功的话,进行服务的操作,如果服务不再使用,进行销毁再卸载 服务:service方法 销毁:destroy方法 代码: package org.lxh.servletdemo ; import java.io.* ; import javax.servlet.* ; import javax.serv

Servlet程序开发(章节摘要)

1,Servlet是使用Java实现的CGI程序,但是与传统CGI不同的是,Servlet采用多线程的方式进行处理,所以程序的性能更高. 2,要想实现一个Servlet则一定要继承HttpServlet类,并根据需要覆写相应的方法,还需要在web.xml文件中配置Servlet后才可以使用. 3,Servlet生命周期控制的3个方法,即init(),service(),(doGet(),doPost())和destroy(). 4,在Servlet程序中可以通过HttpServletReques

Servlet程序开发

1.本章目标 •了解Servlet的主要作用 •掌握Servlet的处理流程 2.Servlet简介 使用java语言编写的服务器端程序,可以生成动态的web页面,Servlet主要运行服务器端. 3.Servlet处理基本流程 客户端(很可能是web浏览器)通过HTTP提出请求 web服务器接收该请求并将其发送servlet.如果这个servlet尚未被加载,web服务器将把它加载到java虚拟机并且执行它. Servlet程序将接收该HTTP请求并执行某种处理 Servlet会将处理后的结果

Servlet程序开发-- 取得其他内置对象

servlet本身提供的只有request和response对象,如果要取得session对象,只能依靠request对象,因为session属于HTTP协议范畴,而且在每次发送请求的时候,服务器都会自动为客户端设置一个cookie,所以,很自然的,session中要使用cookie机制,但是cookie又只能通过request取得,所以自然session也只能通过request取得. 代码: package org.lxh.servletdemo ; import java.io.* ; im

Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet详解、Servlet的生命周期(2)

三.Servlet的生命周期 一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除.Servlet的生命周期被javax.servlet.Servlet这个接口所定义. 所有的Java Servlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在一个Servlet引擎中运行. Servlet引擎是Web 服务器按照Java Servlet API定制的扩展.S

我的第一个Servlet程序和Servlet的生命周期函数

一.Servlet概念: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的 Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者. Servlet运行于支持Java的应用服务器中.从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用

Java Web -- Servlet(4) 开发Servlet的三种方法、配置Servlet详解、Servlet的生命周期(1)

一.实现Servlet接口 通过实现Servlet接口来了解Servlet的生命周期 (1)以规范的形式创建一个web应用(即在webapps目录下创建一个web应用) 创建web应用 (2)classes目录下创建一个.java(该java文件为实现Servlet接口) 创建文件夹MyFirstServlet.java 代码如下: package com.focus; import javax.servlet.*; import javax.servlet.http.*; import jav