一 Servlet是什么
1.
Servlet是在服务器端运行的Java程序
,可以接收客户端请求并做
出响应。
2.Servlet
可以动态生成
HTML
内容对客户端进行响应
二 Servlet生命周期:
- 实例化:启动项目。servlet容器创建servlet实例
- 初始化:容器调用init(servletConfig)方法
- 服务:请求servlet,容器调用service()方法
- 销毁:销毁实例之前调用destroy()方法。
从实例化到请求servlet,容器调用service()方法
销毁:当服务器关闭,重启或移除 Servlet 实例时Servlet调取destroy()方法进行销毁,宣告生命周期的结束。
三 Servlet线程是否安全
Servlet是线程不安全的,因为它默认是单例模式,如果提供成员变量,多个线程对成员变量进行操作,将发生并发问题;在Tomcat容器加载并实例化Servlet之后,会创建一个实例,并且这个实例是唯一的,无论多少用户访问Servlet,都共用这一个实例。而每次用户访问Servlet时,服务器都会为每个用户创建一个独立的线程,每个线程都有它自己的堆栈空间。所以说是单实例多线程,这种默认以多线程方式执行的设计可大大降低对系统的资源需求,提高系统的并发量及响应时间,但也同时引发了Servlet的线程安全问题。