jsp

Servlet与JSP学习笔记(二) Servlet核心(上)

2017-04-11  本文已影响31人  Toconscience

这里又把教材换成了孙卫琴老师的《Tomcat与Java Web开发技术详解》。兜了一圈后发觉这本书真是好。Runoob 太浅,《Head First Servlets and JSP》节奏又太慢,也远离应用。而《Tomcat》这本书虽然没有用Eclipse, 但有结构完整的代码,用Sublime当作项目串起来,跟用Eclipse没有什么代沟。

容器与Web应用及上下文的关系

我觉得这是Servlet最核心的地方。

下图的Tomcat的组成结构刚好可以解释Java web里面最常见的一些概念:

Tomcat结构Tomcat结构

容器在启动一个Web应用时就创建一个ServletContext对象和这个应用对应起来,并且这个对象和Web应用的生命周期一致。因此,可以利用这个对象来存储全局数据。

Servlet API与Servlet 生命周期

Sun公司(现在的Oracle)为javax.servlet.Servlet接口定义了5个方法。其中的3个方法由Servlet容器调用:

另外两个方法在这里不是很重要。下面来说一下Servlet的生命周期:

  1. 初始化阶段:容器加载Servlet类,创建对象,并调用其init()方法。只有在Servlet被第一次请求时,或者Servlet配置了 <load-on-startup>元素, Servlet会被初始化。
  2. 运行时阶段:Servlet被初始化之后,就可以通过service()方法重复接受不同的请求。每次的参数ServletRequest和ServletResponse对象会重新创建和销毁。
  3. 销毁阶段:当Web应用被终止时,容器会先调用所有Servlet对象的destroy()方法,再销毁这些对象。

Web应用的生命周期

  1. 启动阶段:加载Web应用的数据,创建ServletContext对象,对Filter和一些Servlet进行初始化。
  2. 运行阶段:所有的Servlet都处于待命状态,随时可以响应客户端的请求。
  3. 终止阶段:销毁各种对象和资源。
上一篇 下一篇

猜你喜欢

热点阅读