servlet执行原理简述

servlet使用

1、抽象类HttpServlet继承抽象类GenericServlet,其有两个比较关键的方法,doGet()和doPost()。
2、 GenericServlet实现接口Servlet,ServletConfig,Serializable。
3、用户自定义Servlet类继承HttpServlet,重写抽象类HttpServlet的doGet()和doPost()方法。
注:任何一个用户自定义Servlet,只需重写抽象类HttpServlet的doPost()和doGet()即可

servlet执行流程

Servlet只有放在容器中,方可执行,且Servlet容器种类较多,如Tomcat,WebLogic等。下图为简单的请求响应模型。
在这里插入图片描述
分析
1、浏览器向服务器发出GET请求(请求服务器ServletA)。
2、服务器上的容器逻辑接收到该url,根据该url判断为Servlet请求,此时容器逻辑将产生两个对象:请求对象(HttpServletRequest)和响应对象(HttpServletResponce)。
3、容器逻辑根据url找到目标Servlet(本示例目标Servlet为ServletA),且创建一个线程A。
4、容器逻辑将刚才创建的请求对象和响应对象传递给线程A。
5、容器逻辑调用Servlet的service()方法。
6、service()方法根据请求类型(本示例为GET请求)调用doGet()(本示例调用doGet())或doPost()方法。
7、doGet()执行完后,将结果返回给容器逻辑。
8、线程A被销毁或被放在线程池中。
注意
1、在容器中的每个Servlet原则上只有一个实例。
2、每个请求对应一个线程。
3、多个线程可作用于同一个Servlet(这是造成Servlet线程不安全的根本原因)。
4、每个线程一旦执行完任务,就被销毁或放在线程池中等待回收。

servlet在web中扮演的角色

Servlet在JavaWeb中,扮演两个角色:页面角色和控制器角色。
有了jsp等动态页面技术后,Servlet更侧重于控制器角色,jsp+servlert+model 形成基本的三层架构。
jsp充当页面角色,Servlet扮演控制器角色,两者组合构建基本的MVC三层架构模式
在这里插入图片描述

servlet在容器中的生命周期

在这里插入图片描述
分析:
第一步:容器先加载Servlet类。
第二步:容器实例化Servlet(Servlet无参构造函数执行)。
第三步:执行init()方法(在Servlet生命周期中,只执行一次,且在service()方法执行前执行)。
第四步:执行service()方法,处理客户请求,doPost()或doGet()。
第五步:执行destroy(),销毁线程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值