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


No comments:

Popular Posts