Skip to main content

HttpServlet

This is an abstract and subclass of GenericServlet class that is used to create Http protocol specific servlet. It extends GenericServlet class and has following method that has to be overridden by subclass. All methods are called by server. Some of them are invoked according to request of client.

The service() method of HttpServlet is not overridden by programmer. service handles standard HTTP requests by dispatching them to the handler methods for each HTTP request type (the doXXX methods listed below).

All methods throw IOException and ServletException

1.   
protected  void doGet(HttpServletRequest req, HttpServletResponse res)
Called through service method by server to handle GET request from client-side. You can override this method to process GET request as well as HTTP HEAD request. HEAD request is supported by doGet() returning only Header.
When invoked, server passes HttpServletRequest and HttpServletResponse object as parameters. HttpServletRequest object provides the parameters sent by client and HttpServletResponse object used to get the writer or output stream object to write response to client.
2.   
protected  void doPost(HttpServletRequest req, HttpServletResponse res)
Called through service method by server to handle POST request from client-side. You can override this method to process POST request.
When invoked, server passes HttpServletRequest and HttpServletResponse object as parameters. HttpServletRequest object provides the parameters sent by client and HttpServletResponse object used to get the writer to write response to client.
3.   
protected  void doDelete(HttpServletRequest req, HttpServletResponse res)
Called via service method by server to handle DELETE request from client-side. This method should implelemtned by programmer in such a way that client will use it to remove document or web page from the server.
4.   
protected  void doHead(HttpServletRequest req, HttpServletResponse res)
Called via service method by server to handle HEAD request from client-side.  Client will send HTTP HEAD request to get header information of response rather then body. Override this method to set headers only into response object.
5.   
protected  void doOptions(HttpServletRequest req, HttpServletResponse res)
Called via service method by server to handle HEAD request from client-side. The OPTIONS request determines which HTTP methods the server supports and returns an appropriate header.
6.   
protected  void doPut(HttpServletRequest req, HttpServletResponse res)
Called via service method by server to handle PUT request from client-side. Client use PUT request to place document or file on the server and it is similar to sending a file through FTP.
7.   
protected  void doTrace(HttpServletRequest req, HttpServletResponse res)
Called via service method by server to handle PUT request from client-side. This method is used for debugging so doTrace method returns Headers sent by client. There's no need to override this method.
8.   
protected  long getLastModified(HttpServletRequest req)
this method returns the time the HttpServletRequest object was last modified, in milliseconds since midnight January 1, 1970 GMT. If the time is unknown, this method returns a negative number (the default). Servlets that support HTTP GET requests and can quickly determine their last modification time should override this method. This makes browser and proxy caches work more effectively, reducing the load on server and network resources.  
9.   
protected  void service(HttpServletRequest req, HttpServletResponse res)
this method receives standard HTTP requests from the public service method and dispatches them to the doXXX methods defined in this class. This method is an HTTP-specific version of the Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) method. There's no need to override this method.  
10.             
void service(ServletRequest req, ServletResponse res)
Dispatches client requests to the protected service method. There's no need to override this method.  

Example:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyHttpServlet extends HttpServlet {
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       response.setContentType("text/html");
       PrintWriter pw=response.getWriter();
       pw.write("Hello from doGet method");
       pw.close();
    } 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       response.setContentType("text/html");
       PrintWriter pw=response.getWriter();
       pw.write("Hello from doPost method");
       pw.close(); 
    }
}


Here you will see output : Hello from doGet method 
Here MyHttpServlet class is the resultant component that consists of relationships among Servlet interface , GenericServlet class, HttpServlet class and ServletConfig interface as follows.

So resultant servlet has all the properties and methods to process client’s request. ServletConfig interface is implemented by servlet container (e.g. tomcat) and object if passed to your servlet through init() method when you override it. 

Comments

Popular posts from this blog

Using HyperSQL (HSQLDB)

HSQLDB is a portable RDBMS implemented in pure java. It can be embedded with your application as well as can be used separately. It is very a small database that supports almost all features of the standard database system. It comes with small jar file that can be found in lib folder. The HSQLDB jar package is located in the /lib directory of the ZIP package and contains several components and programs. Core components of jar file are : HyperSQL RDBMS Engine (HSQLDB), HyperSQL JDBC Driver, Database Manager, and Sql Tool. Installing and Using Download: download latest release of HyperSQL database from http://hsqldb.org website and extract it. You will see following contents. Here "bin" directory contains some batch files those can be used to run a swing based GUI tool. You can use runManagerSwing.bat to connect to database, but database must be on before running it. Directory lib contains File hsqldb.jar . It is the database to be used by you. Running database First

How to handle values from dynamically generated elements in web page using struts2

Some time you will see the form containing the button " Add More " . This facility is provided for the user to get the values for unknown number of repeating for some information. for example when you are asking to get the projects details from user, you need to put the option to add the more project for the user since you don't known how many projects user have. In the HTML form, you repeat the particular section to get the multiple values for those elements. In Html page , you can put the option to add new row of elements or text fields by writing the java script or using JQuery API. Now, the question is that how to capture the values of dynamically generated text fields on the server. Using the servlet programming you can get the values by using getParameters() method that resultants the array of the parameter having the same name. But this limit you to naming the text fields in the HTML form. To ally this approach, you have to take the same name for t

In Process Mode of HSQLDB in web application.

If you want to use the database into your web application, you can use the HSQLDB in In_Process mode. In this mode, you can embed the HSQLDB into your web application and it runs as a part of your web application programm in the same JVM. In this mode, the database does not open any port to connect to the application on the hosing machine and you don't need to configure anything to access it. Database is not expposed to other application and can not be accessed from any dabase tools like dbVisualizer etc. In this mode ,database will be unknown from any other person except you. But in the 1.8.0 version, you can use Server intance for external as well as in process access.  To close the databse, you can issue SHUTDOWN command as an SQL query.   In the in-process mode, database starts from JDBC with the associated databse file provided through  connection URL. for example   DriverManager.getConnection("jdbc:hsqldb:mydatabase","SA","");   Here myd