继承你自己写的 MyHttpServlet 和直接继承 HttpServlet 的区别如下:
1. 继承 HttpServlet(官方推荐用法)
- HttpServlet 是 Java EE 官方提供的 Servlet 基类,已经实现了 Servlet 接口的大部分方法。
- 它内部已经实现了 service() 方法,会根据请求方式自动调用 doGet()、doPost()、doPut()、doDelete() 等方法。
- 你只需要重写 doGet()、doPost() 等方法即可,不用关心请求分发的细节。
优点:
- 代码简洁,逻辑清晰,官方推荐,最常用。
- 维护和扩展性好。
2. 继承你自己写的 MyHttpServlet
- 你的 MyHttpServlet 是自己实现的 Servlet 基类,你需要自己实现 service() 方法,并手动分发到 doGet()、doPost()。
- 你可以自定义分发逻辑,比如加日志、权限校验、统一异常处理等。
- 但如果你的 MyHttpServlet 只是简单模仿 HttpServlet,那其实没必要,直接用官方的就行。
优点:
- 可以自定义请求分发逻辑,适合有特殊需求时用。
- 可以统一加一些自定义的功能(如日志、权限等)。
缺点:
- 容易出错,维护成本高。
- 代码冗余,和官方实现重复。
3. 实际开发建议
- 绝大多数情况下,直接继承 HttpServlet 就够了。
- 只有在你有特殊需求(比如所有Servlet都要加统一处理逻辑)时,才建议自定义 MyHttpServlet。
总结
- 继承 HttpServlet: 推荐用法,省心省力,自动分发请求。
- 继承 MyHttpServlet: 适合有特殊需求时用,一般不建议重复造轮子。