Servlets are Java programs running on a web server that produce results viewed remotely on web server.
A D V E R T I S E M E N T
Servlets has the same purpose that PHP or CGI had in the past.
We shall describe how Servlet works with some examples.
You will also learn about Servlet Response and Request Model, Servlet Life Cycle, Servlet Scope Objects and Error Handling.
What are Java Servlets?
Servlets are Java technology's answer to the CGI programming. They are programs that
run on a Web server and build Web page. Building Web pages on the fly is useful
(and commonly done) for a number of reason:
The Web page is based on the data submitted by the user. For example
the result pages from search engines are generated this way, and programs
that process orders for e-commerce sites do this as well.
The data alsp changes frequently. For example, a weather-report or
news headlines page might build the page dynamically, perhaps returning a
previously built page if it is still up to the date.
The Web page uses information from corporate databases or other such
source. For example, you would use this for making a Web page at an
on-line store that lists current prices and number of items in the stock.
What are the Advantage of Servlets Over "Traditional" CGI?
Java servlets are more efficient, easier to use, more powerful, more portable,
and cheaper than traditional CGI and than many alternative CGI-like
technology. (More importantly, servlet developers get paid more than Perl
programmers :-).
Efficient. With traditional CGI, a new process is started for the
each HTTP request. If the CGI program does a relatively fast operation, the
overhead of starting the process can dominate the execution of time. With
servlets, the Java Virtual Machine stays up, and each request is handled by
a lightweight Java thread, not the heavyweight operating system process.
Similarly, in traditional CGI, if there are N simultaneous request to
the same CGI program, then the for the CGI program is loaded into
memory N time. With servlets, however, there are N threads but only
a single copy of the servlets class. Servlets also have more alternatives
than do regular CGI programs for optimizations such as caching previous
computations, keeping the database connections open, and the like.
Convenient. Hey, you already know Java. Why learn Perl too?
Besides the convenience of being able to use a familiar language, servlets
have an extensive infrastructure for automatically parsing and decoding the HTML
form data, reading and setting HTTP headers, handling cookies, tracking
sessions, and many other such utilities.
Powerful. Java servlets let you easily do several things that are
difficult or impossible with the regular CGI. For one thing, servlets can talk
directly to Web server (regular CGI programs can't). This simplifies
operations that need to look up images and other data stored in the standard
places. Servlets can also share data among each other, making the useful things
like database connection pools easy to implement. They can also maintain
information from request to request, simplifying things like session
tracking and caching of previous computation.
Portable. Servlets are written in Java and followsss a
well-standardized API. Consequently, servlets written for, say I-Planet
Enterprise Server can alsp run virtually unchanged on Apache, Microsoft IIS, or
WebStar. Servlets are supported directly or via a plugin on the almost every
major Web server.
Inexpensive. There are also a number of free or very inexpensive Web
servers available that are good for "personal" use or low-volume Web sites.
However, with major exception of Apache, which is free, most
commercial-quality Web servers are relatively expensive. Nevertheless, once
you have a Web server, no matter the cost of that server, adding servlets
support to it (if it doesn't come preconfigured to support servlets) is
generally free or cheap.
Advantages of servlets over CGI processes
Servlets:
have significantly less overhead than CGI
can inherit processing state between invocation
can use concurrency control in the Java to share state at server.
Servlets compared to CGI programs:
are slower only when being initially it is loaded
rather faster to run when it is loaded.
Servlets can:
open a database connection when initially it is loaded
share open DB connection with successive invocation
CGI programs have to renew the DB connection each time they're run.
Servlets can:
store state information in the static variables in servlet
share access to the state data each time servlet is run
control concurrent access to the shared state easily
CGI programs lack the common address space to share state easily.
Disadvantages of servlets over CGI processes
cruder model of concurrency
less robust - share common address space in the JVM process
more complex to handle, write and configure
What You Should Already Know
Before you goes to this tutorial you should have a basic understanding of
the following:
HTML
A basic understanding of JAVA
If you are going to study these subjects first, find the tutorial
on our Home page