Servlet: server applet
- 概念:运行在服务器端的小程序狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
- Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
- 将来我们自定义一个类,实现Servlet接口,复写方法。
Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:
- 1.客户端发送请求至服务器端;
- 2.服务器将请求信息发送至 Servlet;
- 3.Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
- 4.服务器将响应返回给客户端。
Servlet 架构
Servlet中的生命周期方法:
- 被创建:执行init方法,只执行一次
* Servlet什么时候被创建?
* 默认情况下,第一次被访问时,Servlet被创建
* 可以配置执行Servlet的创建时机。
* 在标签下配置
1. 第一次被访问时,创建
* 的值为负数
2. 在服务器启动时,创建
* 的值为0或正整数
* Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的
* 多个用户同时访问时,可能存在线程安全问题。
* 解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值 - 提供服务:执行service方法,执行多次
* 每次访问Servlet时,Service方法都会被调用一次。 - 被销毁:执行destroy方法,只执行一次
* Servlet被销毁时执行。服务器关闭时,Servlet被销毁
* 只有服务器正常关闭时,才会执行destroy方法。
* destroy方法在Servlet被销毁之前执行,一般用于释放资源
Servlet的体系结构
Servlet – 接口
|
GenericServlet – 抽象类
|
HttpServlet – 抽象类
* GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象 * 将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可 * HttpServlet:对http协议的一种封装,简化操作 1. 定义类继承HttpServlet 2. 复写doGet/doPost方法 doget方法在访问时会在url后加上地址 dopost则不会
Servlet相关配置
1. urlpartten:Servlet访问路径 1. 一个Servlet可以定义多个访问路径 : @WebServlet({"/d4","/dd4","/ddd4"}) 2. 路径定义规则: 1. /xxx:路径匹配 2. /xxx/xxx:多层路径,目录结构 3. *.do:扩展名匹配