GenericServlet class can handle any type of request so it is protocol-independent.
You may create a generic servlet by inheriting the GenericServlet class and providing the implementation of the service method.
Methods of GenericServlet class
There are many methods in GenericServlet class. They are as follows:
- public void init(ServletConfig config) is used to initialize the servlet.
- public abstract void service(ServletRequest request, ServletResponse response) provides service for the incoming request. It is invoked at each time when user requests for a servlet.
- public void destroy() is invoked only once throughout the life cycle and indicates that servlet is being destroyed.
- public ServletConfig getServletConfig() returns the object of ServletConfig.
- public String getServletInfo() returns information about servlet such as writer, copyright, version etc.
- public void init() it is a convenient method for the servlet programmers, now there is no need to call super.init(config)
- public ServletContext getServletContext() returns the object of ServletContext.
- public String getInitParameter(String name) returns the parameter value for the given parameter name.
- public Enumeration getInitParameterNames() returns all the parameters defined in the web.xml file.
- public String getServletName() returns the name of the servlet object.
- public void log(String msg) writes the given message in the servlet log file.
- public void log(String msg,Throwable t) writes the explanatory message in the servlet log file and a stack trace.
Difference between HttpServlet and GenericServlet–
javax.servlet.GenericServlet
Signature: public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable
- GenericServlet defines a generic, protocol-independent servlet.
- GenericServlet gives a blueprint and makes writing servlet easier.
- GenericServlet provides simple versions of the lifecycle methods init and destroy and of the methods in the ServletConfig interface.
- GenericServlet implements the log method, declared in the ServletContext interface.
- To write a generic servlet, it is sufficient to override the abstract service method.
javax.servlet.http.HttpServlet
Signature: public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
- HttpServlet defines a HTTP protocol specific servlet.
- HttpServlet gives a blueprint for Http servlet and makes writing them easier.
- HttpServlet extends the GenericServlet and hence inherits the properties GenericServlet.
Servlet Example by inheriting the GenericServlet class-
Let’s see the simple example of servlet by inheriting the GenericServlet class.
import java.io.*; import javax.servlet.*; public class HelloServlet extends GenericServlet{ public void service(ServletRequest req,ServletResponse res) throws IOException,ServletException{ res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.print("<html><body>"); out.print("<b>hello generic servlet</b>"); out.print("</body></html>"); } }
- Java Servlets Overview
- Servlet Life Cycle
- Servlet Example
- Difference between ServletConfig and ServletContext
- Difference between GenericServlet and HttpServlet
- What is web application?
- Advantages of Servlets over CGI
- GenericServlet Example
- RequestDispatcher Example
- ServletConfig
- ServletContext
- Servlet Filter Example
- Database Access Example using Sevlet
- File Uploading Example using Servlet