Servlet生命周期,Servlet是线程安全的吗? 为什么?

一  Servlet是什么

1. Servlet是在服务器端运行的Java程序 ,可以接收客户端请求并做 出响应。
2.Servlet 可以动态生成 HTML 内容对客户端进行响应

二 Servlet生命周期:

  1. 实例化:启动项目。servlet容器创建servlet实例
  2. 初始化:容器调用init(servletConfig)方法
  3. 服务:请求servlet,容器调用service()方法
  4. 销毁:销毁实例之前调用destroy()方法。 

 从实例化到请求servlet,容器调用service()方法

销毁:当服务器关闭,重启或移除 Servlet 实例时Servlet调取destroy()方法进行销毁,宣告生命周期的结束。

 三 Servlet线程是否安全

Servlet是线程不安全的,因为它默认是单例模式,如果提供成员变量,多个线程对成员变量进行操作,将发生并发问题;在Tomcat容器加载并实例化Servlet之后,会创建一个实例,并且这个实例是唯一的,无论多少用户访问Servlet,都共用这一个实例。而每次用户访问Servlet时,服务器都会为每个用户创建一个独立的线程,每个线程都有它自己的堆栈空间。所以说是单实例多线程,这种默认以多线程方式执行的设计可大大降低对系统的资源需求,提高系统的并发量及响应时间,但也同时引发了Servlet的线程安全问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值