Servlet(4)重定向,Servlet的生命周期

本文介绍了Servlet的重定向概念,包括重定向的原理、方式及其特点。同时详细阐述了Servlet的生命周期,包括实例化、初始化、就绪和销毁四个阶段,并提及了初始化参数的使用以及相关接口和类的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 1.重定向


## (1)什么是重定向?
服务器通知浏览器向某个地址发送请求。

    注:
        服务器可以通过发送302状态码和Location消息头
    (Location消息头的值是一个地址,一般称之为重定向地址)给浏览器,
    ,浏览器收到之后,会立即向重定向地址发送请求。

## (2)如何重定向?

response.sendRedirect(String url);

注: 
        url就是重定向地址。
        容器在重定向之前,会先清空response对象上存放的所有数据
        (响应数据包实体内容为空)。
    
## (3)特点
a.重定向地址是任意的。

b.重定向之后,浏览器地址栏的地址会发生变化。


# 2.Servlet的生命周期


## (1)什么是Servlet的生命周期?
servlet容器如何创建servlet对象、如何对其进行初始化处理、
如果调用其方法来处理请求,以及如何销毁该对象的整个过程。

## (2)servlet生命周期分成哪几个阶段?
### 1)实例化
a.什么是实例化?

    容器调用Servlet的构造器,创建Servlet对象。

b.什么时候实例化?

    情形1(默认): 容器收到请求之后,立即创建。
    情形2: 容器启动之后,立即创建(需要做一些配置)。

<!-- 
  		配置启动加载,即容器启动之后,会立即创建该
  		Servlet对象。
  		注:
  			参数值是一个大于等于零的整数,值越小,
  			优先级越高(即先被创建)。	
  	 	-->
  		<load-on-startup>1</load-on-startup>

c.容器会创建几个实例?
    
    一个!

### 2)初始化
a.什么是初始化?

    容器在创建完servlet对象之后,会立即调用该对象的init方法
    注:
        该方法只会执行一次!

b.GenericServlet已经提供了init方法的实现
        
    将容器传递过来的ServletConfig对象保存下来了,并且
    提供了一个getServletConfig方法来获得该对象。
    
c.如何实现自已的初始化处理逻辑?
    
    override GenericServlet的init()方法即可。

d.初始化参数的使用

step1.配置初始化参数
  	 <init-param>
  	 	<param-name>company</param-name>
  	 	<param-value>IBM</param-value>
  	 </init-param>

	step2. 读取初始化参数
	String company = 
			config.getInitParameter("company");
	System.out.println("company:" + company);

### 3)就绪

a.什么是就绪?

    容器收到请求之后,会调用Servlet对象的service方法。

b.HttpServlet已经提供了service方法的实现:

    依据请求类型,调用对应的doXXX方法。
    比如,get请求调用doGet方法,post请求调用doPost方法。
    这些doXXX方法,只是抛出了一个异常。

### 4)销毁

容器在删除Servlet对象之前,会调用该对象的destroy方法。
    注:
        该方法只会执行一次!

b.GenericServlet已经提供了destroy方法的基本实现。

    可以override destroy方法来实现自己的销毁处理逻辑。

## (3)生命周期相关的几个接口与类(了解)
a.Servlet接口
    
    init(ServletConfig config)
    service()
    destroy()

b.GenericServlet抽象类

    该类实现了Servlet接口中的部分方法(init,destroy)。

c.HttpServlet抽象类

    该类继承了GenericServlet,实现了service方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值