servlet简介

Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: web

①Web服务器首先检查是否已经装载并建立了该Servlet的实例对象。若是是,则直接执行第④步,不然,执行第②步。
  ②装载并建立该Servlet的一个实例对象。
  ③调用Servlet实例对象的init()方法。
  ④建立一个用于封装HTTP请求消息的HttpServletRequest对象和一个表明HTTP响应消息的HttpServletResponse对象,而后调用Servlet的service()方法并将请求和响应对象做为参数传递进去。
  ⑤WEB应用程序被中止或从新启动以前,Servlet引擎将卸载Servlet,并在卸载以前调用Servlet的destroy()方法。
服务器

 Servlet调用图

 Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。

  HttpServlet指可以处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。所以开发人员在编写Servlet时,一般应继承这个类,而避免直接去实现Servlet接口。
 HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用 HttpServlet的doGet方法,如为Post请求,则调用doPost方法。所以,开发人员在编写Servlet时,一般只须要覆写doGet 或doPost方法,而不要去覆写service方法。 app

因为客户端是经过URL地址访问web服务器中的资源,因此Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工 做在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。
  <servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。
一 个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元 素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外 访问路径。

同一个Servlet能够被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值能够是同一个Servlet的注册名。 url

Servlet是一个供其余Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行彻底由Servlet引擎来控制和调度。
  针对客户端的屡次Servlet请求,一般状况下,服务器只会建立一个Servlet实例对象,也就是说Servlet实例对象一旦建立,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。
 在Servlet的整个生命周期内,Servlet的init方法只被调用一次。而对一个Servlet的每次访问请求都致使Servlet引擎调用一 次servlet的service方法。对于每次访问请求,Servlet引擎都会建立一个新的HttpServletRequest请求对象和一个新的 HttpServletResponse响应对象,而后将这两个对象做为参数传递给它调用的Servlet的service()方法,service方法 再根据请求方式分别调用doXXX方法。   若是在<servlet>元素中配置了一个<load-on-startup>元素,那么WEB应用程序在启动时,就会装载并建立Servlet的实例对象、以及调用Servlet实例对象的init()方法。 spa

相关文章
相关标签/搜索