Servlet 技术

Servlet简介

java Servlet是与平台无关的服务器端组件,它可以运行早Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet方法,Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式

Servlet可完成如下功能:

  • 创建并返回基于客户请求的动态HTML页面
  • 创建可嵌入到现有HTML页面中的部分HTML页面
  • 与其他服务器资源(如数据库或基于java的应用程序)进行通信
  • 接收多个客户机的输入,并将结果广播道多个客户机上。例如,Servlet可以实现支持多个参与者的游戏服务器
  • 根据客户请求采用特定的MIME(Multipurpose Internet Mail Extensions)类型对数据过滤,例如进行图像格式转换

Servlet API

   Servlet的框架是由两个java包组成的:javax.servlet和 javax.servlet.http。在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的通用接口和类。在javax.servlet.http包中国定义了采用HTTP协议通信的HttpServlet类。

  Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的生命周期:

  • init 方法,负责初始化Servlet对象
  • service 方法, 负责响应客户的请求
  • destory方法, 当Servlet对象退出生命周期时,负责释放占用的资源

Servlet 的生命周期

   Servlet的生命周期开始与被装载到Servlet容器中,结束于被终止或重新装入时。Servlet的生命周期可以分为3个阶段:初始化阶段、响应客户请求阶段和终止阶段。在javax.servlet.Servlet接口中定义了3个方法init()、Service()、destory(),他们将分别在Servlet的不同阶段被调用。

  1. 初始化阶段

在下列情形下Servlet容器装载Servlet:

  •   Servlet容器启动时自动装载某些Servlet
  •   在Servlet容器启动后,客户首次向Servlet发出请求
  •  Servlet的类文件被更新后,重新装载Servlet

Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期中,init方法只会被调用一次。init方法有两种重载形式:

  public void init(ServletConfig config)throws ServletException;

 public void init() throws ServletException;

在Servlet的初始化阶段,Servlet容器会为Servlet创建一个ServletConfig对象,用来存放Servlet的初始化配置信息。如Servlet的初始参数。如果Servletle类覆盖了第一种带参数的init方法,应该先调用super.init(config)方法确保参数config引用ServletConfig对象;

如果覆盖的是第二种不带参数的init()方法,可以不调用super.init()方法,如果要在init方法中访问ServletConfig对象,可以调用Servlet类的getServletConfig()方法。

2. 响应客户请求阶段

  对于到达Servlet容器的客户请求,Servlet容器创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后调用Servlet的service方法。service方法从ServletRequest对象获得客户端请求信息并处理请求,通过ServletRespoonse对象向客户返回响应结果

3.终止阶段

    当Web应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet的新实例时,Servlet容器会先调用Servlet的destroy方法。在destory方法中,可以释放Servlet所占用的资源。

 

你可能感兴趣的:(Servlet 技术)