Servlet详解(4) -GenericServlet与HttpServlet

tech2022-09-10  98

创建一个新的Web项目,命名为myservlet002 新建的项目目录如下图所示: 在这个新建的工程里,必须包含Java的jdk包以及Tomcat里的jsp包和servlet包 在src目录下新建包,在包里新建一个Java类MyServlet,并实现接口servlet 我们知道,在实现Servlet接口时,需要实现接口内的五个抽象方法,但是实在实际开发中,除了核心方法service,其他四个方法几乎不使用,因此通过实现Servlet接口来看,其代码较为冗余。 我们可以使用继承HttpServlet类的方式达到与实现Servlet接口相同的效果,而且代码看起来更加简洁

Servlet的层次接口

Servlet本质上是一套工具,Servlet接口只是其最顶端的一组接口,在Servlet下还有GenericServlet,GenericServlet下还有HttpServlet,即层次结构为: Servlet–>GenericServlet–>HttpServlet (1)在上面创建的包内新建一个Java类TestServlet,继承HttpServlet (2)重写HttpServlet中的doGet()和doPost()方法 HTTP请求有很多种,常用的有四种: GET–读取 POST–保存 PUT–修改 DELETE–删除 因此我们重写的两个方法:doGet()和doPost() 分别是用来处理GET请求和POST请求的 这个时候,我们就可以只通过doGet()和doPost()两个方法达到与实现Servlet接口相同的效果 (3)在MyServlet类(实现Servlet接口)的service方法内写入代码,并通过注解的方式实现 在TestServlet类(继承HttpServlet类)的doGet()方法内写入相同内容的代码,并通过注解的方式实现 (4)编译运行 再打开的浏览器地址输入在MyServlet类自定义的地址,回车 在浏览器地址输入在TestServlet类中自定义的地址,回车 效果相同 (5)从上面可以看出,通过继承HttpServlet类的方式比实现Servlet接口的方式更简洁,代码更精炼

总结

GenericServlet类实现了Servlet接口,同时为它的子类屏蔽了Servlet接口中不常用的方法,子类只需要重写service方法即可 HttpServlet类继承GenericServlet类,根据请求类型进行分发,GET进入doGet()方法,POST进入doPost()方法 开发者自定义的Servlet类只需要继承HttpServlet类,重写doGet()方法、doPost()方法即可

最新回复(0)