JSP总结_01Servlet生命周期

1、 Servlet是什么?

  Servlet(Service applet)叫小服务应用程序,是Sum公司提供的一种开发动态资源技术,它能够让 Java程序在Web环境中被访问,有效地代替了公共网关接口(Common Gateway Interface,CGI),通过多线程的方式来处理并发请求,而不是像CGI那样,基于进程的方式来处理请求;
在这里插入图片描述

2、Servlet的生命周期

1)创建Servlet实例,可在web.xml文件中配置创建时机:
load-on-startup=1,容器启动时创建;
load-on-startup=0,初次访问时创建,默认值;
2)调用init方法,在创建实例的时候,会同时调用init方法进行初始化,init方法有2种重载方法,默认调用init无参方法,当在web.xml中配置了init-param时,可以通过init(ServletConfig cfg)获取配置参数值;
3)调用Service方法,容器自动判断请求类型分别调用doGet或doPost方法;
4)调用destroy方法,在容器关闭时调用销毁Servlet对象;

3、生命周期验证实例
package xw.zx;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.org.apache.xml.internal.security.Init;
/**
 * 基于注解的方式定义ServletLife对应的url-pattern
 * 注意不要在web.xml中重复定义同名的url-pattern,否则会报错
 * @author Administrator
 *
 */
@WebServlet("/life")
public class ServletLife extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
		@Override
	public void init() throws ServletException {
		System.out.println("初始化Servlet");
	}
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("调用Servlet的doGet方法");
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
	@Override
	public void destroy() {
		System.out.println("销毁  Servlet");
	}	

}

  启动tomcat 容器,在浏览器中输入:localhost:8080/servletdemo/life后的输出结果:
在这里插入图片描述

4、总结

  从生命周期的执行过程中,不难发现Servlet采用单例模式来处理多用户的并发请求(每次都在新的线程中调用Servlet对象的service方法并传入客户端传来的req和res),所以当Servlet的service方法调用了共用资源(全局变量)时,需要注意线程安全问题,应用Synchronized小范围加锁或者实现SingleThreadMode标签接口(已被摒弃);
  :小白能力有限,如有错误,请帮忙纠正哦,谢谢~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值