链接:https://www.nowcoder.com/questionTerminal/3f368578e43d48b1968d79b935d00972
来源:牛客网
**

## 其中一种解说:
**
注意以下几点:
1.service方法是在servlet生命周期中的服务期,默认在HttpServlet类中实现,根据HTTP请求方法(GET、POST等),将请求分发到doGet、doPost等方法实现。
2.GenericServlet
抽象类给出了设计servlet的一些骨架,定义了servlet生命周期还有一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的。doget/dopost与Http协议有关,是在
javax.servlet.http.HttpServlet 中实现的。
3.doGet和doPost方法在HttpServlet类中实现,GenericServlet中实现了service()
4.常说所有的请求都先由service方法处理,而javax.servlet.GenericServlet接口实现了javax.servlet.Servle接口,且javax.servlet.http.HttpServlet
是 javax.servlet.GenericServlet 的子类。只有最先定义好了的service方法才可以处理所有的请求。
**
## 另一种解说:
**
链接:https://www.nowcoder.com/questionTerminal/3f368578e43d48b1968d79b935d00972
来源:牛客网
service()是在javax.servlet.Servlet接口中定义的, 在
javax.servlet.GenericServlet 中实现了这个接口。
而 doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的,
javax.servlet.http.HttpServlet 是 javax.servlet.GenericServlet 的子类。
所有可以这样理解, 其实所有的请求均首先由 service() 进行处理, 而在
javax.servlet.http.HttpServlet 的 service() 方法中, 主要做的事情就是判断请求类型是 Get
还是 Post, 然后调用对应的 doGet/doPost 执行。