【Head First Servlets and JSP】笔记3:Servlet的生命周期
1、servlet的存在就是要为客户服务。servlet的任务就是得到一个用户的请求,再发回一些响应。
- 请求可能很复杂,也可能很简单,例如,“为我的购物车结账”,这个请求携带了一些重要的数据,你必须知道如何获取这些数据;相应的,响应也可能需要携带一些东西,你必须知道怎样把这些附加信息写入响应。
- servlet既可以直接输出响应给Web容器,也可以转发请求给JSP
2、Web容器(例如Tomcat)全盘控制着servlet的一生。
- 用户点击一个URL,这个URL指向一个servlet
- 容器“看出”URL指向一个servlet,于是创建两个对象:HttpServletRequest、HttpServletResponse
- 容器为对应的servlet创建线程,并将两个对象传入service(HttpServletRequest req, HttpServletResponse resp)
- service方法根据客户发过来的HTTP方法(GET、POST等)调用servlet的对应方法(doGet(HttpServletRequest req, HttpServletResponse resp)、doPost(HttpServletRequest req, HttpServletResponse resp)等)
- servlet通过响应对象将响应写给客户,容器传回响应给客户。
- service()线程结束,保留或是清理响应的对象,客户得到响应。
3、mark 一下tomcat的官方文档 Servlet API Documentation 以及head first系列 Head First (book series)
4、HttpServlet的继承树、接口
- java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
MyServlet
- All Implemented Interfaces:java.io.Serializable, Servlet, ServletConfig
Servlet接口:包括三个生命周期方法
GenericServlet:抽象类,包括大部分基本servlet行为,基本不扩展这个类
HttpServlet:强调servlet的HTTP特性
MyServlet:覆盖所需的HTTP方法,例如doPost等
5、每个请求都在一个单独的线程运行(不是进程),servlet类不会有多个实例!servlet类不会有多个实例!
6、servlet类的加载和实例化到底是什么时候开始的?基本上是在容器启动时,有例外,但是一定是在第一个客户请求提供服务之前。
7、在init()之前,还只是个普通的对象,当且仅当一个对象具备“servlet特性”的时候,才能被称作servlet
8、在构造函数和init()之间,servlet处于一种 介于生与死之间的状态 Schrödinger's cat - Wikipedia
9、ServletConfig和ServletContext。每一个servlet都有一个ServletConfig对象,用处就是字面上的意思;每个Web应用都有个ServletContext(应该叫做AppContext),相当于应用中的一个公告栏。
10、最后,servlet的真正任务是处理请求,这才是servlet存在的意义,请求和响应是其中的关键。
【Head First Servlets and JSP】笔记3:Servlet的生命周期的更多相关文章
- JSP Servlet WEB生命周期
[转载] JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化 ...
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- Servlet的生命周期和Jsp的生命周期
Servlet的生命周期: 1)构造方法(第1次访问) 2)init方法(第1次访问) 3)service方法 4)destroy方法 Jsp的生命周期 1)翻译: jsp->java文件 2) ...
- Servlet是什么?JSP和Servlet的区别。Servlet的生命周期。
Servlet(Server Applet),全称Java Servlet, 是用Java编写的服务器端程序.而这些Sevlet都要实现Servlet这个借口.其主要功能在于交互式地浏览和修改数据,生 ...
- Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结
1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...
- Servlet的生命周期及工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
- Servlet的生命周期+实现方式
1.Servlet的生命周期: (1)被创建: 默认情况下,Servlet第一次被访问时,被服务器创建.会调用init()方法. 一个 ...
- servlet的生命周期与运行时的线程模型
第 14 章 生命周期 注意 讲一下servlet的生命周期与运行时的线程模型,对了解servlet的运行原理有所帮助,这样才能避免一些有冲突的设计. 如果你不满足以下任一条件,请继续阅读,否则请跳过 ...
- Servlet/JSP-01 Servlet及其生命周期
一.起步 1.新建一个类继承Servlet接口 public class HelloServlet implements Servlet { @Override public void destroy ...
随机推荐
- 深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
本篇文章是对单一入口.MVC.ORM.CURD.ActiveRecord概念进行了详细的分析介绍,需要的朋友参考下 MVC MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使 ...
- codeforces(559C)--C. Gerald and Giant Chess(组合数学)
C. Gerald and Giant Chess time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- oracle高水位
oracle高水位http://www.cnblogs.com/chuyuhuashi/p/3548260.htmlhttp://blog.csdn.net/wyzxg/article/details ...
- 第9章 Docker Swarm 相关问题
9.1 我的 Docker 版本是 1.12,请问我跑的是一代 Swarm 还是二代 Swarm 啊? ……自己运行的 Swarm 怎么会连自己都不知道跑的是啥?
- Android 自定义权限 (<permission> <uses-permission>)
在android系统的安全模型中,应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作.如果应用需要执行某些操作,就需要声明使用这个操作对应的权限. (在manifest ...
- poj3159
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 28133 Accepted: 7766 Descrip ...
- Qt 如何获取一个文件的 Icon 图标?
#include <QPixmap> #include <QString> #include <QFileInfo> #include <QFileIconP ...
- nginx配置文件解析工具
最近花了一些时间自己实现解析nginx配置文件的功能,这里有个工具先记下以后用. https://github.com/nginxinc/crossplane
- AndroidStudio项目import进的包都是红色的
今天在开发项目时,一不留神,项目中import部分的内容全部变成了灰色,最后的类名却都变成了红色,如图: 一时之间,懵逼了~~~.Alt+Enter快捷键导包竟然是这个样子的@_@: 这简直就没见过 ...
- javascript高级语法三
一.js的正则表达式 1.什么是正则表达式 正则表达式(regular expression)是一个描述字符模式的对象,ECMAScript的RegExp类表示正则表达式,而String和RegExp ...