Servlet API

Servlet API_第1张图片 Servlet API
  • Servlet接口隶属于javax.servlet包,该接口规定所有的Servlet必须实现的5个方法,前三个方法是Servlet生命周期的方法。
  • GenericServlet类隶属于javax.servlet包,这是一个抽象类,该类实现了大多数所需的基本Servlet方法,包括Servlet接口的方法。
  • HttpServlet也是一个抽象类,路属于javax.servlet.http包,该类实现了对应HTTP协议的各种service()方法,注意到这些service()方法的写法-----do+HTTP请求类型,这些方法不接受ServletRequest和ServletResponse参数,而是要求HttpServletRequest和HttpServletResponse参数。
  1. init()方法:当创建Servlet实例完成之后,在处理客户端请求之前,容器调用Servlet实例的init()方法。其用途是在处理客户端请求之前,给用户一个编写初始化代码的机会。开发人员可重写该方法,如果有一些初始化的代码,如获取数据库连接或打开I/O流,可以重写Servlet类的init()方法。由于每个Servlet对象的init()方法只执行一次,适合耗时较长的初始化处理以提高性能。如果使用init()方法初始化资源,可以使用destory()完成清理资源的工作,如关闭获取的数据库连接或I/O流。
  2. service()方法:当第一个客户请求到来时,容器将启动一个新线程,或从线程池分配一个线程,并调用Servlet的service()方法。该方法先查看请求类型,确定是那种HTTP方法(GET、POST等)之后并调用doGet()、doPost()等方法。开发人员需重写doGet()、doPost()等方法,让HttpServlet的service()方法的具体实现来决定该调用对应的哪些方法。
  3. doGet()、doPost()方法:根据客户请求方法的类型(GET、POST等),service()方法调用对应的doGet()或doPost()等方法。开发人员通过重写某个方法来告诉容器支持哪个HTTP方法。例如,如果没有重写doPost()方法,那就告诉容器该Servlet不支持HTTP POST请求。

你可能感兴趣的:(JavaEE)