The Java EE Tutorial - Part III The Web Tier - 17 Java Servlet Technology

https://docs.oracle.com/javaee/7/tutorial/index.html

17 Java Servlet Technology

17.1 What Is a Servlet?

servlet是Java编程语言中一个工具类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。

The javax.servlet and javax.servlet.http packages provide interfaces and classes for writing servlets. All servlets must implement the Servlet interface, which defines lifecycle methods.

When implementing a generic(通用的) service, you can use or extend the GenericServlet class provided with the Java Servlet API.

The HttpServlet class provides methods, such as doGet and doPost, for handling HTTP-specific services.

https://zhuanlan.zhihu.com/p/295171866

servlet接口定义的是一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()和destroy(),还有一个处理请求的service(),也就是说,所有实现servlet接口的类,或者说,所有想要处理网络请求的类,都需要回答这三个问题:

  • 你初始化时要做什么
  • 你销毁时要做什么
  • 你接受到请求时要做什么

这是Java给的一种规范!

servlet接口定义的是一套处理网络请求的规范,但不会直接和客户端打交道。

servlet容器才是与客户端直接打交道的家伙,比如我们最常用的tomcat,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。

17.2 Servlet Lifecycle

servlet的生命周期由部署了servlet的容器控制。当一个请求被映射到servlet时,容器执行以下步骤。

  1. 如果servlet实例不存在,容器将会:
    a. Loads the servlet class
    b. Creates an instance of the servlet class
    c. Initializes the servlet instance by calling the init method(参考 Creating and Initializing a Servlet
  2. 容器调用service方法,传递请求和响应对象。(Service methods are discussed in Writing Service Methods.)

如果需要移除servlet,容器通过调用servlet的destroy方法来完成servlet。有关更多信息,请参见结束Finalizing a Servlet

生命周期:init——>service——>destroy——>jvm回收

17.2.1 Handling Servlet Lifecycle Events

通过定义侦听器对象,在生命周期事件发生时调用其方法,您可以监视并响应servlet生命周期中的事件。要使用这些侦听器对象,必须定义和指定 the listener class

17.2.1.1 Defining the Listener Class

监听器,懒

posted @ 2022-05-25 09:06  Pril  阅读(23)  评论(0)    收藏  举报