Servlet生命周期

Servlet生命周期

先创建一个简单的项目

目录结构如下:
在这里插入图片描述

创建HelloServlet类,实现Servlet接口

为了方便演示,这里对每个方法进行了打印操作。

package com.zhenghui;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloServlet implements Servlet{

	@Override
	public void destroy() {
		System.out.println("destroy");
	}

	@Override
	public ServletConfig getServletConfig() {
		System.out.println("getServletConfig");
		return null;
	}

	@Override
	public String getServletInfo() {
		System.out.println("getServletInfo");
		return null;
	}

	@Override
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init");
	}

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("service");
	}
	
	public HelloServlet() {
		System.out.println("This is a HelloServlet");
	}

}

编辑web.xml进行Servlet的映射及配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>JavaWeb_HelloWord</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list> 
  
  <!--配置servlet  -->
  <servlet>
  	<!--Servlet 注册的名字  -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--Servlet 的全类名  -->
  	<servlet-class>com.zhenghui.HelloServlet</servlet-class>
  </servlet>
  
 <!--映射servlet  -->
  <servlet-mapping> 
    <!--需要和某一个Servlet的servlet-name子节点的文本节点一致  -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--映射具体的访问路径:/代表当前WEB应用的根目录-->
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>  
  
</web-app>

启动,测试

在这里插入图片描述

刷新测试
由于我刷新了好几次,所以会打印多了service
在这里插入图片描述

关闭服务测试

在这里插入图片描述

由前面两个实验可以看得出,Servlet生命周期生效的有四个方法,分别为:

1、构造方法:只被调用一次,只有第一次请求Servlet时,创建Servlet时被调用。
2、init方法:只被调用一次。在创建好实例后立即被调用。用于初始化当前Servlet。
3、service方法:被多次调用。每次请求都会调用。相应请求的。
4、destroy方法:只被调用一次,在当前Servlet所在的web应用在被关闭前调用。用于释放当前Servlet所占用的资源。

其他

<!--可以指定Servlet被创建的时机  -->
<load-on-startup>2</load-on-startup>
 <!--配置servlet  -->
  <servlet>
  	<!--Servlet 注册的名字  -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--Servlet 的全类名  -->
  	<servlet-class>com.zhenghui.HelloServlet</servlet-class>
  	<!--可以指定Servlet被创建的时机  -->
  	<load-on-startup>2</load-on-startup>
  </servlet>
  
    <!--配置servlet  -->
  <servlet>
  	<!--Servlet 注册的名字  -->
  	<servlet-name>ceshiServlet</servlet-name>
  	<!--Servlet 的全类名  -->
  	<servlet-class>com.zhenghui.ceshiServlet</servlet-class>
  	<!--可以指定Servlet被创建的时机  -->
  	<load-on-startup>5</load-on-startup>
  </servlet>
  
 <!--映射servlet  -->
  <servlet-mapping> 
    <!--需要和某一个Servlet的servlet-name子节点的文本节点一致  -->
  	<servlet-name>helloServlet</servlet-name>
  	<!--映射具体的访问路径:/代表当前WEB应用的根目录-->
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>  
  
  
   <!--映射servlet  -->
  <servlet-mapping> 
    <!--需要和某一个Servlet的servlet-name子节点的文本节点一致  -->
  	<servlet-name>ceshiServlet</servlet-name>
  	<!--映射具体的访问路径:/代表当前WEB应用的根目录-->
  	<url-pattern>/ceshi</url-pattern>
  </servlet-mapping>  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrueDei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值