字面解释
- 简单点说servlet就是一个小型服务器连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性
- 主要功能在于交互式地浏览和生成数据,生成动态Web内容。
-
客户端发送请求至服务器端;
-
服务器将请求信息发送至 Servlet;
-
Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
-
服务器将响应返回给客户端.
-
生命周期
1.第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。
2.Servlet 容器在调用 service() 方法之前加载 Servlet。
3.然后 Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的 Servlet 实例的 service() 方法。
server 创建一个servlet实例
1、第一个客户端的请求到达 Server
2、Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)
3、一个客户端的请求到达 Server
4、Server 创建一个请求对象,处理客户端请求
5、Server 创建一个响应对象,响应客户端请求
6、Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数
7、service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
8、service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。
工作模式
1、客户端发送请求至服务器;
2、服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器;
3、服务器将响应返回客户端。
补充说明--->jsp和servlet的区别与联系
Java Server Pages(JSP)是一种实现普通静态HTML 和动态 HTML 混合编码的技术,JSP 并没有增加任何本质上不能用 Servlet 实现的功能。但是,在 JSP 中编写静态HTML 更加方便,不必再用 println语 句来输出每一行 HTML 代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行 HTML设计,同时留出供 Servlet 程序员插入动态内容的空间。
从网络三层结构的角度看 JSP 和 Servlet 的区别,一个网络项目最少分三层:data layer(数据层),business layer(业务层),presentation layer(表现层)。当然也可以更复杂。Servlet 用来写 business layer 是很强大的,但是对于写 presentation layer 就很不方便。JSP 则主要是为了方便写 presentation layer 而设计的。当然也可以写 business layer。写惯了 ASP,PHP,CGI的朋友,经常会不自觉的把 presentation layer 和 business layer 混在一起。