servlet运行原理

1.servlet的实例的创建过程

  1. 当运行servlet项目时,服务器会扫描项目中所有包内的java文件,并将带有注解的文件放入一张表中.
  2. 表中以key/value的形式存储,key为注解,value是通过java的反射API来创建的Servlet实例.
  3. 实例调用servlet的默认构造方法,所以我们在编写servlet类时,不要在提供带参数的构造方法.

2.servlet的工作过程

  1. 在客户端对web服务器发送请求
  2. Web服务器接收到请求后发送给servlet
  3. servlet容器创建实例对象并调用servletAPI中的相应方法对客户端的HTTP请求进行处理,并将响应结果返回给web服务器
  4. web服务器将servlet实例对象中收到的响应发送给客户端

3.servlet生命周期

(1) 加载和实例化

当启动servlet容器时,容器首先查找配置文件或注解,根据记录容器会为每个自动装入选项的servlet创建一个实例

(2)初始化

实例化后,servlet容器将调用每个servlet的init方法来实例化每个实例,执行完init方法之后,Servlet处于“已初始化”状态。在servlet的整个生命周期,init方法只调用一次

(3)请求处理

初始化以后,servlet处于响应请求的就绪状态.Servlet容器调用Servlet的service()方法对请求进行处理.注:在service()方法调用之前,init()方法必须成功执行。在service()方法中,Servlet实例通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。

(4)服务终止

容器检测当servlet实例应该被移除时,容器调用destroy()方法,释放该实例.随后会被java的垃圾收集器回收.如果servlet需要再处理请求,容器会创建一个新的Servlet实例。在整个Servlet的生命周期过程中,调用实例的init()和destroy()方法都只进行一次

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值