在http协议的请求头中获取到要访问的资源,查找web.xml文件找到对应的servelet
Sevlet的生命周期
Servlet在第一次被访问的时候,服务器创建出Servlet对象,创建出对象以后会直接调用init方法做初始化操作,创建出的对象会一直驻留在内存中为对这个Servlet的访问服务,每次对这个Servlet的访问都会导致service方法执行,当web应用被移除出容器时或者服务器被关闭时,随着web应用的销毁Servlet会被销毁,在销毁之前,服务器会调用Servlet的destroy方法做一些善后的工作
每次调用service()方法的时候,会传递进来两个参数:Request对象,Response对象
Request对象里面包含 http请求头和实体内容
Response对象是空的
调用Response对象的getWriter().write()方法,往Response对象中写入内容
服务器把Response对象中的内容组织成Http协议返回给浏览器
Servlet的继承结构
Servlet——接口定义了Servlet应该具有的基本方法
|——GenericServlet 通用基本Servlet实现,把service方法设计为抽象方法,需要子类去实现
|——HttpServlet实现了父类中的service方法,判断当前的请求方式,调用对应的doXXX方法,需要子类去继承并覆盖对应的doGet()或者doPost()方法
Servlet的细节
一个<servlet>可以对应多个<servlet-mapping>
<url-partten>中可以使用*匹配符,由于*的引入,有可能一个路径被多个url-partten匹配,优先级:哪个最像找哪个,*.后缀 的优先级最低
在<servlet>下面可以配置<load-on-start-up>可以用来指定启动顺序