文章目录
Servlet
概述
-
Servlet applet 运行在服务器端的小程序,Servlet 就是一个接口,定义了 Java 类被浏览器访问到的规则(Tomcat能识别),我们自定义一个类,实现 Servlet 接口,复写接口中的方法。
-
访问流程
快速入门
-
创建 JavaEE 项目
-
定义一个类,实现 Servlet 接口
-
实现接口中的抽象方法
-
配置 Servlet(web.xml) 将类映射成 url
<!--配置Servlet --> <servlet> <servlet-name>demo</servlet-name> <servlet-class>cn.heng.web.servlet.ServletDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping>
-
执行原理
- 当服务器接受到客户端浏览器的请求后,会解析请求的 URL 路径,获取访问的 Servlet 的资源路径
- 查找 web.xml 文件,是否有对应的 标签体内容
- 有的话,则找到对应的 全类名
- Tomcat 会将字节码文件加载进内存中,并且创建其对象,调用其方法
Servlet 中方法的生命周期
- 被创建:执行 init 方法,只执行一次
- Servlet 什么时候被创建?
- 默认情况下,第一次被访问时,Servlet 被创建(也可配置执行Servlet的创建时机)
- 第一次被访问时,创建 的值为负数
- 在服务器启动时,创建 的值为 0 或 正整数
- Servlet 的 init 方法,只执行一次
- 说明一个 Servlet 在内存中 只存在一个对象,Servlet 是单例的
- 多个用户同时访问时,可能存在线程安全问题
- 尽量不要在 Servlet 中定义成员变量,即使定义了成员变量,也不要修改值
- Servlet 什么时候被创建?
- 提供服务:执行 service 方法,执行多次
- 每次访问 Servlet 时,service 方法都会被调用一次
- 被销毁:执行 destroy 方法,只执行一次
- Servlet 被销毁时执行,服务器关闭时,Servlet 被销毁,只有服务器正常关闭时,才会执行 destroy 方法
- destroy 方法在 Servlet 被销毁之前执行,一般用于释放资源
Servlet 的体系结构
Servlet – 接口 |
---|
GenericServlet – 抽象类 |
HttpServlet – 抽象类 |
GenericServlet
- 概述:将 Servlet 接口中其他的方法做了 默认空实现