浅析 Servlet 的三种创建方法
创建 Servlet
- 实现 javax.servlet.Servlet 接口
- 继承 javax.servlet.GenericServlet 类
- 继承 javax.servlet.http.HttpServlet 类
Servlet UML关系图
1.实现 Servlet 接口
Servlet 接口提供了五个方法,其中三个生命周期方法和两个普通方法,实现 Servlet 接口需要重写五个基本方法。
2.继承 GenericServlet 类
GenericServlet 是一个抽象类,实现了 Servlet 接口并进行扩展,对其中除 service() 外的方法提供了默认实现,继承 GenericServlet 类只需要重写类中 service() 方法即可。
3.继承 HttpServlet 类(常用)
HttpServlet 也是一个抽象类,它进一步继承并封装了 GenericServlet,使得使用更加简单方便,HttpServlet 中对原始的 Servlet 中的方法都进行了默认实现,使用者只需要继承 HttpServlet,然后重写 doGet() 和 doPost() 方法处理请求即可。
有一点需要说明,这两个方法并不是强制重写,如果不重写,那就会执行默认的实现,首先获取协议,然后获取国际化字符串,最后判断协议。如果协议为 HTTP/1.1 则返回 405 错误,如果不是 HTTP/1.1 则返回 400 错误。
我们创建 Servlet 必然需要它帮助我们实现功能,所以一般都会重写两个方法,假设你肯定你的 Servlet 只处理 Get 方法,那你不重写 doPost() 也是可以完成相关功能的,不过还是建议两个方法都重写。
我们一般都使用继承 HttpServlet 的方式来创建一个 servlet。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!