In Servlet API, I mentioned about Http Servlet. In this article, I will discuss Http Servlet in detail.
Unlike Generic Servlet, the HTTP Servlet doesn’t override the service() method. Instead it overrides the doGet() method or doPost() method or both. The doGet() method is used for getting the information from the server while the doPost() method is used for sending information to the server.
In Http Servlet there is no need to override the service() method because this method dispatches the Http Requests to the correct method handler, for example if it receives HTTP GET Request it dispatches the request to the doGet() method.
The HttpServlet class extends the GenericServlet class and implements Serializable interface. It provides http specific methods such as doGet, doPost, doHead, doTrace etc.
Methods of HttpServlet class
There are many methods in HttpServlet class. They are as follows:
S.No. | Methods | Description |
1 | public void service(ServletRequest req,ServletResponse res) | It dispatches the request to the protected service method by converting the request and response object into http type. |
2 | protected void service(HttpServletRequest req, HttpServletResponse res) | It receives the request from the service method, and dispatches the request to the doXXX() method depending on the incoming http request type. |
3 | protected void doGet(HttpServletRequest req, HttpServletResponse res) | It handles the GET request. It is invoked by the web container. |
4 | protected void doPost(HttpServletRequest req, HttpServletResponse res) | It handles the POST request. It is invoked by the web container. |
5 | protected void doHead(HttpServletRequest req, HttpServletResponse res) | It handles the HEAD request. It is invoked by the web container. |
6 | protected void doOptions(HttpServletRequest req, HttpServletResponse res) | It handles the OPTIONS request. It is invoked by the web container. |
7 | protected void doPut(HttpServletRequest req, HttpServletResponse res) | It handles the PUT request. It is invoked by the web container. |
8 | protected void doTrace(HttpServletRequest req, HttpServletResponse res) | It handles the TRACE request. It is invoked by the web container. |
9 | protected void doDelete(HttpServletRequest req, HttpServletResponse res) | It handles the DELETE request. It is invoked by the web container. |
10 | protected long getLastModified(HttpServletRequest req) | It returns the time when HttpServletRequest was last modified since midnight January 1, 1970 GMT. |
Servlet Example by inheriting the HttpServlet class
In this example we are going to create a servlet that extends the HttpServlet class. In this example, we are inheriting the HttpServlet class and providing the implementation of the doGet() method. Notice that get request is the default request.
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class FirstServlet extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html"); //setting the content type
PrintWriter out=res.getWriter(); //get the stream to write the data
//writing html in the stream
out.println("<html><body>");
out.println("Welcome to servlet");
out.println("</body></html>");
out.close(); //closing the stream
}}