Servlets over CGI :
Servlets are server side components that provides a powerful mechanism for
developing server web applications for server side. Earlier CGI was developed to
provide server side capabilities to the web applications. Although CGI played a
major role in the explosion of the Internet, its performance, scalability and
reusability issues make it less than optimal solutions. Java Servlets changes
all that. Built from ground up using Sun's write once run anywhere technology
java servlets provide excellent framework for server side processing.
Using servlets web developers can create fast and efficient server side
applications and can run it on any servlet enabled web server. Servlet runs
entirely inside the Java Virtual Machine. Since the servlet runs on server side
so it does not depend on browser compatibility.
Servlets have a number of advantages over CGI and other API's. They are:
Platform Independence:
Servlets are written entirely in java so these are platform independent.
Servlets can run on any Servlet enabled web server. For example if you develop
an web application in windows machine running Java web server, you can easily
run the same on apache web server (if Apache Serve is installed) without
modification or compilation of code. Platform independency of servlets provide a
great advantages over alternatives of servlets.
Performance
Due to interpreted nature of java, programs written in java are slow. But the
java servlets runs very fast. These are due to the way servlets run on
web server. For any program initialization takes significant amount of time. But
in case of servlets initialization takes place first time it receives a request
and remains in memory till times out or server shut downs. After servlet is
loaded, to handle a new request it simply creates a new thread and runs service
method of servlet. In comparison to traditional CGI scripts which creates a new
process to serve the request.
Extensibility:
Java Servlets are developed in java which is robust, well-designed and object
oriented language which can be extended or polymorphed into new objects. So the
java servlets take all these advantages and can be extended from existing class
to provide the ideal solutions.
Safety:
Java provides very good safety features like memory management, exception
handling etc. Servlets inherits all these features and emerged as a very
powerful web server extension.
Secure:
Servlets are server side components, so it inherits the security provided by the
web server. Servlets are also benefited with Java Security Manager.
Servlets are easier to write:
Servlet can handle multiple request concurrently, and synchronize requests.