一、servlet的定义
servlet是服务器上运行的小程序,一个servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的驻留在服务器内存里的servlet程序。
简单来说,servlet是用Java编写的服务器端程序,用于接收请求、处理数据、响应结果。
二、Tomcat容器等级
Tomcat容器分为4个等级:
[1.Container 容器,集装箱]
[2.Engine 引擎容器]
[3.Host 主机]
[4.Servlet容器](tomcat最低级别的容器)里面包含了一个或多个Context(上下文),servlet容器管理Context,一个Context对应一个web项目
三、编写servlet
step1.继承HttpServlet
step2.重写doGet()或者doPost()方法
step3.在web.xml中注册servlet
补充:HttpServlet是实现了HTTP协议的servlet,继承于GenericServlet。GenericServlet是与协议无关的servlet,实现了Servlet接口。Servlet接口有三个方法:init()、service()、destroy()。
四、servlet的生命周期
- 初始化阶段,Servlet 通过调用 init () 方法进行初始化。servlet容器装载servle后,servlet容器创建一个servlet实例,而后调用servlet的init()方法进行初始化。在servlet的整个生命周期内,只调用一次init()方法。对同一个Servlet的多个请求对应多个线程,多个线程共享一个servlet实例,每个线程执行一个单一的 Servlet 实例的 service() 方法。
补充:实例化与初始化的区别
实例化一般是指由类创建对象,在构造一个实例的时候需要在内存中开辟空间,如 Student s = new Student();
初始化是实例化的基础上,为对象中的变量赋初始值。
- 响应客户请求阶段,Servlet 调用 service() 方法来处理客户端的请求,由service()方法根据提交方式选择执行doGet()或者doPost()方法。
- 终止阶段,Servlet 调用 destroy() 方法。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
补充:在下列时刻servlet容器装在servlet
1.servlet容器启动时自动装载某些servlet,这些自动启动的servlet的loadon-startup的值为1,数字越小,优先级越高。
2.在servlet容器启动后,客户首次向servlet发送请求。
3.servlet类文件更新后,重新装载servlet。
五、servlet与jsp九大内置对象的对应关系
jsp内置对象 | 在servlet中如何获得 |
out | response.getWriter() |
request | service方法中的request参数 |
response | service方法中的response参数 |
session | request.getSession() |
application | getServletContext() |
exception | Throwable |
page | this |
pageContext | pageContext |
Config | getServletConfig() |