When the servlet spec was first conceived, it's creators realized that this concept could apply to several server protocols. So, rather than add a bunch of methods to the servlet interface that would be igored by any implementation other than HTTP (such as doPost, doGet), they designed the generic servlet with no protocol specific methods. Then, when desiging a servlet interface specifically for HTTP, they inherited from this generic servlet and added HTTP specific methods.
At this time, there are no servlet implementations for protocols other than HTTP; at least none are known to me.
In other words, there is almost no point in extending GenericServlet while building web-apps.
GenericServlet is designed to implement irrespective of the protocl.Let us take an example.The servlets that runs inside a web-container(http server) are called as HttpServlets.Like this if the servlet technology is implemented as part of X servers then we call it as X servlet.