Servlet的生命周期
1.从出生到死亡的过程就是生命周期对应servlet中的三个方法init(),service(),destory()
2.默认情况下 第一次接收请求时,这个Servlet会进行实例化、初始化然后服务
从第二次请求开始,每一次都是服务,当容器关闭时,其中所有servlet实例都会被销毁
3.servlet实例tomcat只会创建一个所有请求都是按这个去响应
默认情况下第一次请求时,tomcat才会去实例化初始化
4.servlet在容器中是:单例的,线程不安全的
单例:所有的请求都是同一个实例去响应
线程不安全:一个线程需要根据这个实例中的某个成员变量的值去做逻辑判断,但在中间某个时机,另一个分线程改变了这个成员变量的值
我们可以重写这三个方法 更直观的看到生命周期
public void init() throws ServletException{
System.out.println("正在初始化");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("正在服务");
}
@Override
public void destroy() {
System.out.println("正在销毁");
}
当启动tomcat服务器时
当servlet接受多次请求时
当停止tomcat时
HTTP协议
1.http称之为 超文本传输协议
2.http是无状态的
3.http请求响应包含两个部分:请求和响应
请求包含三个部分:1.请求行;2.请求消息头;3.请求主体
1请求行包含三个信息1.请求的方式;2.请求的url;3.请求的协议(一般都是HTTP1.1)
2请求消息头中包含很多客户端需要告诉服务器的信息,比如我的浏览器型号、版本、服务器型号
3.请求体,三种情况
get方式,没有请求体但是有一个queryString
post方式,有请求体,form data
json格式,有请求体,request payload
-响应
响应也包含三本:1.响应行;响应头;响应体
1.响应行包含三个信息1.协议2.响应状态码3.响应状态
2。响应头 包含了服务器的信息;服务器发送给浏览器的信息(内容的媒体类型、编码、内容长度)
3.响应体:响应的实际内容(比如请求hello,htm页面时。响应的内容就是…)