Servlet——Server applet
运行在服务器端的小程序
Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
步骤
- 创建JavaEE项目。
- 定义一个类,实现servlet接口。
- 实现接口中的抽象方法。
- 在web.xml配置servlet。
执行原理
- 当服务器接受到客户端浏览器的请求后,会解析URL路径,获取访问的Servlet的路径资源。
- 查找web.xml文件,是否有对应的
<url-parttern>
标签体内容。 - 如果有,则找到对应的
<servlet-class>
全类名。 - tomcat会将字节码文件加载进内存,并创建其对象
- 调用其方法。
Servlet生命周期
- 被创建,在Servlet被创建时执行init方法。只执行一次。
- 提供方法。每一次servlet被访问时执行service方法。执行多次。
- 销毁方法,在服务器正常关闭时执行destroy方法。只执行一次。
注意
servlet的init方法,只执行一次,说明servlet在内存中只存在一个对象,servlet单例的。
多个用户同时访问时,可能存在线程问题。
解决方法
尽量不要在servlet中定义成员变量。即使定义了成员变量,也不要对值修改。
servlet3.0
好处
支持注解配置,可以不需要web.xml
步骤
- 创建JavaEE项目,选择servlet的版本3.0以上,可以不创建web.xml。
- 定义一个类,实现servlet接口。
- 复写方法。
- 在类上使用@webServlet注解,进行配置。(@webServelt(“资源路径”))
Servlet的体系结构
- GenericServlet——将servlet接口中其他的方法做了默认空实现,只将server()方法作为抽象。
- HttpServlet——对http协议的一种封装,简化操作。
- 定义类继承。
- 复写doGet/doPost方法。