在我们讨论Servlet API时,我们已经讨论了一些Generic Servlet。在这篇文章中,我们将详细探讨一下Generic Servlet。
通用servlet是协议无关的Servlet, 需要重写service()方法来处理客户端请求。service()方法接受两个参数,ServletRequest对象和ServletResponse对象。request对象告诉servlet客户端请求信息,response对象返回客户端响应。
Generic Servlet 如何工作的?
(image)[https://beginnersbook.com/wp-content/uploads/2013/05/Generic_Servlet.jpg]
Generic Service 继承结构
java.lang.Object
|_extended byjavax.servlet.GenericServlet
GenericServlet 是抽象类,只有一个抽象方法,就是service()。这就是为什么当我们通过扩张GenericServlet类创建通用servlet,我们必须重写service()方法。
使用Generic Service 的优点
1) 通用Servlet很容易写
2) 有简单的生命周期方法
3) 写通用Servlet只需要扩张javax.servlet.GenericServlet,重写service()方法。
使用Generic Servlet的确定
使用通用Servlet并不是很简单,因为没有类似Http Servlet中的doGet(),doPost()等方法。在HttpServlet中对于一般的请求,我们重写这些方便的方法即可,例如,如果需要get信息,只需要重写doGet()方法,如果需要发送信息给服务器就重写doPost()方法。然而,在Generic Servlet中,我们只能为每种类型的请求重写service()方法,这是比较麻烦的。
我建议使用HttpServlet而不是GenericServlet.HttpServlet是更简单使用,比GenericServlet有更多方法。