0
点赞
收藏
分享

微信扫一扫

【Servlet原理】

丹柯yx 2022-01-05 阅读 54

一、Servlet概念

1.1、什么是Servlet

  • Servlet是Sun公司开发动态网页(Web)的技术
  • Sun公司推出的Java API有Servlet接口
  • 实现Servlet接口的java程序称作Servlet

二、容器

2.1、Web容器

web容器是一种服务程序,在服务器操作系统上一个端口就有一个提供相应服务的程序(Tomcat的8080端口),而这个程序就是处理从客户端发出的请求,发送网页至客户端,传输过程遵循HTTP协议

2.2、Servlet容器

  • Servlet容器也叫做Servlet引擎,在服务器端使用Java来动态生成网页
  • Servlet容器的主要任务是管理servlet的生命周期
  • Servlet没有main方法,不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法,如doGet、doPost

三、浏览器访问Servlet过程

在这里插入图片描述

分析:

  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. 每个线程一旦执行完任务,就被销毁或放在线程池中等待回收
举报

相关推荐

0 条评论