servlets tutorial

Servlets Tutorial – Java – Technosap

Servlets Tutorial provides the basic and advanced concepts of Servlets. Our Servlets Tutorial is designed for beginners and professionals to learn Servlets online; Java servlets are key component of server-side Java development. A servlet is a small, pluggable extension to a server that enhances the server’s functionality.

Servlets Tutorial

Servlets Introduction

Servlets enable developers to expand and customize any Java-enabled server—whether a web server, a mail server, an application server, or a bespoke server—with previously unheard-of portability, flexibility, and convenience. But, before we go any further, let’s put things in context.

JavaSoft (later renamed Sun Microsystems‘ Java Software business) completed Java servlets. This operation combined the disparate technologies into a single, standard, generic approach for generating modular server-side Java code. Servlets were created to function with both Java-based and non-Java-based servers. Support for servlets has now been added to practically every web server, from Apache to Zeus, as well as many non-web servers.

Servlets have gained popularity quickly because, unlike many new technologies that must first explain the problem or task they were designed to solve, servlets provide a clear solution to a well-known and ubiquitous need: creating dynamic web content. People who have suffered with the maintenance and performance issues of CGI-based web programming, from organisations to individual web programmers, are moving to servlets for their power, portability, and efficiency.

Others, who may have been put off by CGI programming’s apparent dependency on manual HTTP communication and the Perl and C languages, are turning to servlets as a more manageable first step into the realm of online development.

History of Web Applications

While servlets can be used to extend the functionality of any Java-enabled server, they are most commonly used to extend web servers, acting as a strong and efficient substitute for CGI scripts. When you use a servlet to generate dynamic content for a web page or to enhance the capabilities of a web server in any other way, you are effectively developing a web application. A web page displays static content and allows the user to move around it, whereas a web application delivers a more dynamic experience. A web application might be as simple as searching for keywords in a document archive or as complex as an electronic storefront.

Web applications are being deployed on the Internet as well as corporate intranets and extranets, where they have the potential to boost productivity and revolutionise the way large and small businesses conduct business. To appreciate the capabilities of servlets, we must first take a step back and consider some of the different ways that may be utilised to construct web applications.

Servlets Tutorial  Beginners Guide

Java Servlets

Then there are Java servlets. A servlet, as previously stated, is a type of server extension. A Java class that can be dynamically loaded to extend the capabilities of a server. Servlets are frequently used on web servers, where they can replace CGI scripts. A servlet is comparable to a proprietary server extension, except that it runs inside the server’s Java Virtual Machine (JVM), making it safe and portable. Servlets function entirely within the server’s domain; unlike applets, they do not require Java support in the web browser.

Unlike CGI and FastCGI, which use several processes to handle separate programmes and/or separate requests, servlets are all handled by separate threads within the web server process. This means that servlets are also efficient and scalable. Because servlets operate within the web server, they can communicate with the server in ways that CGI scripts cannot.

Support for Servlets 

Servlets were created to be portable. Servlets work with all major web servers and are supported on all platforms that support Java.Java servlets, as specified by Sun Microsystems‘ Java Software division (previously known as JavaSoft), are the first standard addition to Java. This means that while servlets are formally sanctioned by Sun and are included in the Java language, they are not part of the core Java API. As a result, while servlet classes may operate with any Java Virtual Machine (JVM), they are not required to be included with all JVMs. There is more information available regarding the Java Extension Framework at link. 

To make it easy for you to develop servlets, Sun has made publicly available a set of classes that provide basic servlet support. The javax.servlet and javax. servlet.http packages constitute this Servlet API. Version 2.0 of these classes comes bundled with the Java Servlet Development Kit (JSDK) for use with the Java Development Kit version 1.1 and above; the JDSK is available for download from http://java.sun.com/products/servlet/.† Many web server vendors have incorporated these classes into their servers to provide servlet support, and several have also provided additional functionality. Sun’s Java Web Server, for instance, includes a proprietary interface to the server’s security features.

HTTP Servlet Basics

We may see a quick overview of some of the capabilities of an HTTP servlet. An HTTP servlet, for example, can generate an HTML page when it is accessed explicitly by name, by following a hypertext link, or as the consequence of a form submission. An HTTP servlet can also be placed within an HTML page and act as a server-side inclusion. Servlets can be chained together to achieve sophisticated effects; one popular application of this method is content filtering. Finally, using a novel approach known as JavaServer Pages, fragments of servlet code can be inserted directly in HTML pages.

Requests, Responses, and Headers

HTTP is a straightforward, stateless protocol. A client, such as a web browser, sends a request to the web server, which responds and completes the transaction. When a client sends a request, the first thing it specifies is an HTTP command known as a method, which tells the server what type of action it wants performed. This first line of the request also includes the document’s address (a URL) and the HTTP protocol version. For instance, GET /intro.html HTTP/1.0


This Servlets Tutorial, request uses the GET method to ask for the document named intro.html, using HTTP Version 1.0. After sending the request, the client can send optional header information to tell the server extra information about the request, such as what software the client is running and what content types it understands. This information doesn’t directly pertain to what was requested, but it could be used by the server in generating its response.

Here are some sample request headers:

User-Agent: Mozilla/4.0 (compatible; MSIE 4.0; Windows 95)
Accept: image/gif, image/jpeg, text/*, */*

The Accept header indicates the media (MIME) types that the client chooses to accept, whereas the User-Agent header offers information about the client software. The client sends a blank line after the headers to signal the end of the header section. As with the POST method, the client can also transmit additional data if it is appropriate for the method being used. If no data is sent, the request closes with an empty line. After the client sends the request, the server processes it and sends back a response. The first line of the response is a status line that specifies the version of the HTTP protocol the server is using, a status code, and a description of the status code.

For example: HTTP/1.0 200 OK

This status line has a status code of 200, indicating that the request was successful, therefore the descriptor “OK.” Another typical status code is 404, which means “Not Found”—as you might expect, this means that the requested document could not be found.

Servlets Tutorial : Servlet API

Now that you have a fundamental grasp of HTTP, we can go on to the Servlet API, which you will use to develop HTTP servlets, or any servlets for that matter. Servlets make use of classes and interfaces from the javax.servlet and javax.servlet.http packages. The javax.servlet package includes classes for implementing generic, protocol-independent servlets. The classes in the javax.servlet.http package augment these classes to provide HTTP-specific functionality. To emphasise that the Servlet API is a standard extension, the top-level package name is javax rather than the conventional java.

The javax.servlet.Servlet interface must be implemented by all servlets. Most servlets implement it by extending either javax.servlet.GenericServlet or javax.servlet.http.HttpServlet. A protocol-independent servlet should be a subclass of GenericServlet, whereas an HTTP servlet should be a subclass of HttpServlet, which is a subclass of GenericServlet with additional HTTP-specific capabilities.

To process requests as suitable for the servlet, a generic servlet should override its service() method. The method service() takes two parameters: a request object and a response object. The request object provides information to the servlet, whereas the response object is utilised to return a response. The graphic below depicts how a generic servlet processes requests.

In contrast, an HTTP servlet does not often override the service() method. It instead overrides doGet() for GET requests and doPost() for POST requests. Depending on the type of request, an HTTP servlet can override any or both of these methods. Because the service() method of HttpServlet handles setup and dispatching to all doXXX() methods, it should not be overridden. The diagram above depicts how an HTTP servlet processes GET and POST requests.

Servlets Tutorial

Tutorial #1 : Servlet Database Access

Tutorial #2 : ServletRequest Interface

Tutorial #3: Servlet Filter and Servlet Chain

Tutorial #4: Servlet Life Cycle

Tutorial #5: HttpServlet Class in Servlet

Tutorial #6: Servlets IQ&A

Servlets Tutorial for beginners explain what Servlet, and it gives a brief understanding of messaging and important Servlets with basis concepts are explained above post. I will be adding more posts in Servlets Tutorial, so please bookmark the post for future reference too.