概念
运行在服务器端的小程序
Servlet是一个接口,定义了java类被浏览器访问到(Tomcat)的规则
定义一个类,实现servlet接口,复写方法
快速入门
- 创建一个类
- 实现Servlet接口
- 实现接口中的抽象方法
- 在service里输出
- 在web.xml配置Servlet
执行原理
- 服务器接收到浏览器发送的请求后,会解析url的路径,获得访问Servlet的资源路径
- 查找web.xml里的标签内容是否对应
- 如果有,找到对应的全类名
- tomcat会将字节码文件加载到内存,创建其对象
- 调用其方法
Servlet的方法:
五个方法:
init方法:初始化方法,在servlet创建时候执行, 只执行一次
service:提供服务的方法,每次访问Servlet时执行,执行多次
destroy:在服务器正常关闭时,执行,执行一次
ServletConfig:Servlet的配置对象
getServletInfo:获取信息 版本 作者
生命周期:
- 被创建 执行init方法 只执行一次
- 提供服务 执行service方法 执行多此
- 被销毁 服务器关闭 执行一次
Servlet什么时候被创建
默认情况下,第一次访问时,可以修改创建时机
在web.xml配置 [数值]
当数值为正数(0)时,就是在服务器启动时创建
当数值为负数时,就是在第一次访问时创建,数值默认为-1
servlet的init只执行一次,就代表servlet在内存中只存在一个对象,Servlet是单例的
注意:多个用户访问时,可能会出现线程安全问题。尽量不要在Servlet定义成员变量。
Servlet什么时候提供服务
每次访问Servlet时,service方法都会被调用一次
Servlet什么时候被销毁
服务器正常关闭时,Serlvet被销毁
注解配置:
需要Servlet3.0以上
- 创建项目
- 创建一个Servlet接口的实现类
- 复写方法
- 使用注解@WebServlet(“资源路径”)
Servlet体系
因为实现Servlet需要把所有方法重写
Servlet -> GenericServlet -> HttpServlet 都是抽象类
GenericServlet 将Servlet接口其他方法默认做了空实现,只将Service方法作为抽象
HttpServlet : 复写doGet() doPost()方法,对http协议的封装,简化操作(推荐)
Servlet相关配置
1.urlpartten:Servlet访问路径
@WebServlet({"/d1","/dd1",“ddd1”})
2.urlpartten:多层访问路径
@WebServlet({"/user/*""})