Skip to main content

Servlet introduction

What is the server? Server is the program or set of program or software that serves for the requests made by client. So the server may be machine as well as software that will provide the services to others. The client may be programs, software of machine etc that those will send the request to server for the specific purpose.

Two processes running on different execution environment independently to each other and communicating by some sent of rules process some data may be client server architecture.


Servlet is a server side java program that extends the capabilities of server. Servlet program is used by server to process the request of client and to generate the response to the client.

For example if you want that, I want to send a request to server to change my name into Uppercase then how the server will do it.  Server should have such type of capability. So developer will place a program at the server side that can change the string into uppercase and developer tells the server about that program by some configuration then server will use this program to change the string into uppercase.

Servlet does not run it self, it is invoked by the web server (or by web container) to process the request of client. At that time server will execute some portion of servlet instance according to request and after sending response the servlet instance will available to be used for anther request.

Servlet and CGI programs

Before the servlet there were CGI programs for long time doing same thing. Still why we need the servlet? Let see the differences between CGI and Servlet.
  • A Servlet does not run in a separate process. This removes the overhead of creating a new process for each request.
  • A Servlet stays in memory between requests. A CGI program (and probably also an extensive runtime system or interpreter) needs to be loaded and started for each CGI request.
  • There is only a single instance of servlet which answers all requests concurrently. This saves memory and allows a Servlet to easily manage persistent data.

 First Demo of Servlet program (Using Generic Servlet)

Here you are going to create a simple servlet that will print to the client side “Hello Servlet”.
Step 1: cerate the following directory structure
  1. Create folder WebApp1
  2. Inside WebApp1  create folder WEB-INF
  3. Inside WEB_INF create folder classes


Step 2: Cerate a java program as shown here.
            You can place source file FirstServlet.java
anywhere in system

 import java.io.*;
 import javax.servlet.*;
 
 public class FirstServlet extends GenericServlet{
   public void service(ServletRequest req, ServletResponse res)
 throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
pw.write("Hello Servlet");
}
}

Step 3: Compile
                  Use the javac command or editor to compile the servlet program. After successfully compilation, compiler will produce another file FirstServlet.class
Step 4: Copy classes file into WebApp1\WEB-INF\classes folder of your web application as you created before.

Step 5: create web.xml file

<web-app>
    <servlet>
        <servlet-name>s1</servlet-name>
        <servlet-class>FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>s1</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>
Step 6: place it into WebApp1\WEB-INF folder.
Now you web application’s directory structure will look like following figure.

Now it is complete demo web application and we can deploy it to web container like tomcat.

Step 7: Deploy
To deploy this web application use the simple method, just copy WebApp1 folder into the webapps folder located into following path  of tomcat server.

C:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.16\webapps

Step 8:
Start or restart tomcat server
Double click bootstrap.jar file that can be found into tomcat\bin folder
Or
If tomcat is installed properly then use tomcat monitor service to stop and start tomcat.
Step 9:
Open web browser (i.e. Internet explorer) and write down the following address into address bar.
And see the output into web browser


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

Generating JTable from database table

package  process; import  javax.swing. * ; import  javax.swing.table. * ; import  java.sql. * ; /**  * This class create JTable from Database table.  * User program needs to specify database connection and corresponding atable name.  * @author Hemraj  */ public   class  TableToJTable {      //private String table;      private   Connection  con;      public   TableToJTable ( Connection  con ){          this .con = con;      }      /**      * This method return JTable object created from Database table having same data asn structure      * as in original table into database.      * @param table Name of the database table to be coverted to JTable      * @return JTable object that consist of data and structure of Database table      * @throws java.lang.Exception Original object is deferent, e.i either SQLException or NullPointerException      */      public   JTable   getTable ( String  table ) throws   Exception {          JTable  t1 = new   JTable () ;          D