Servlet api
1.servlet api 就是一套专门用于开发servlet的类和接口,web容器和servlet之间是通过api来进行联系
2.一个servlet程序就是运行在web服务器上面一个调用servlet api的Java类。实现一个servlet必须满足的要求,实现Javax,servlet。servlet接口,当前接口定义了servlet程序和web容器之间的通信协议规定
3.javax,servlet。genericservlet类,实现了servlet的基本功能
4.servlet专门提供了用于处理http协议的类,javax,servlet,servlethttp,Httpservlet
5.自己要创建的servlet需要继承httpservlet
servlet生命周期
1.容器启动就会加载webapps文件下面的所有web项目,读取项目中的web.xml文件。
2.通过web.xml里面servlet-class获取到类的全路径,反射创建servlet实例。
3.调用实例化后servlet的init方法,完成初始化加载
4.请求直接到达servlet方法
5.其容器关闭之间先销毁servlet调用destroy进行后续处理
2-5期间,init方法和destroy只会进行一次。servlet每次请求都会执行。
<load-on-startup>o</load-on-startup>
将此标签放在servlet表类部,表示容器加载servlet的时间
如果为正数,表示启动容器就加载servlet,值越大,优先级越低
如果为负数,表示第一次访问再加载servlet实例
servlet与http协议
servlet程序对http一无所知,servlet专门设计了一个类,javax,servlet.http,Httpservlet用来处理http协议。每次请求先到达service方法。如果子类重写了doget,或者dopost,在将请求转交给相应的方法来处理。servlet负责调用其他的方法---一个执行者。doget负责处理get请求,dopost负责处理post请求,两者其实是service方法代理
上下文(用户共有)
servletContext对象
在servlet编程中,容器创建了上下文对象,用于描述servlet运行环境的信息,使得servlet可以在容器中相互通信(数据共享)
在web程序启动的使用就产生上下文。容器关闭上下文消失。代表的是当前web应用
上下文对象是所有servlet共享的对象,也是所有用户共享的对象
获取上下文对象的方式
1.通过servletConfig对象获取到上下文
2重写了init方法必须通过init方法就必需通过servletConfig获取