体系结构
一、Servlet继承关系图
GenericServlet:
将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象。
将来定义Servlet类时,可以继承GenericServlet
,实现service()
方法即可。HttpServlet:
对http协议的一种封装,简化操作
① 定义类继承HttpServlet
② 复写doGet/dopost方法
注:一般实际开发中使用的是HttpServlet
.
二、分析HttpServlet的底层实现
不管使用哪种方法,都要实现service方法,在service方法中一般首先要接收view层传过来的数据,传输数据的方式有get和post两种,所以就需要提前判断请求方式
。
这样所有的servlet方法中都应该对请求方式做判断,这个过程非常的麻烦。Sun公司就提供了一个HttpServlet类
,把这件事情做好了。
注意: 在service方法中不要调用父类的service方法
public class TestServlet extends HttpServlet {
@Override
public void init() throws ServletException {
// 初始化代码
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service()----");
// 不要调用父类的service
// super.service(req, resp);
}
}