Question: What is a Servlet?
Answer: Java Servlets are server side components that provides a powerful
mechanism for developing server side of web application. 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.
Question: What are the types of Servlet?
Answer: There are two types of servlets, GenericServlet and
HttpServlet. GenericServlet defines the generic or protocol
independent servlet. HttpServlet is subclass of GenericServlet and provides some
http specific functionality linke doGet and doPost methods.
Question: What are the differences between
HttpServlet and Generic Servlets?
Answer: HttpServlet Provides an abstract class to be subclassed to
create an HTTP servlet suitable for a Web site. A subclass of
HttpServlet must override at least one method, usually one of
these:
-
doGet,
if the servlet supports HTTP GET requests
-
doPost,
for HTTP POST requests
-
doPut,
for HTTP PUT requests
-
doDelete,
for HTTP DELETE requests
-
init
and destroy, to manage resources that are held for the life of the
servlet
-
getServletInfo, which the servlet uses to provide information
about itself
There's almost no reason to override the
service
method. service handles standard HTTP requests by dispatching them to the
handler methods for each HTTP request type (the
doXXX
methods listed above). Likewise, there's almost no reason to override the
doOptions
and doTrace methods.
GenericServlet defines a generic,
protocol-independent servlet. To write an HTTP servlet for use on the Web,
extend HttpServlet instead.
GenericServlet implements the
Servlet
and ServletConfig interfaces.
GenericServlet may be directly
extended by a servlet, although it's more common to extend a protocol-specific
subclass such as
HttpServlet.
GenericServlet makes writing
servlets easier. It provides simple versions of the lifecycle methods
init
and destroy and of the methods in the
ServletConfig interface.
GenericServlet also implements the
log
method, declared in the
ServletContext interface.
To write a generic servlet, you need only override
the abstract
service method.
Question: Differentiate between Servlet and
Applet.
Answer: Servlets are server side components that executes on the server
whereas applets are client side components and executes on the web browser.
Applets have GUI interface but there is not GUI interface in case of Servlets.
Question: Differentiate between doGet and doPost method?
Answer: doGet is used when there is are requirement of sending data
appended to a query string in the URL. The doGet models the GET method of Http
and it is used to retrieve the info on the client from some server as a request
to it. The doGet cannot be used to send too much info appended as a query
stream. GET puts the form values into the URL string. GET is limited to about
256 characters (usually a browser limitation) and creates really ugly URLs.
POST allows you to have extremely dense forms and
pass that to the server without clutter or limitation in size. e.g. you
obviously can't send a file from the client to the server via GET. POST has no
limit on the amount of data you can send and because the data does not show up
on the URL you can send passwords. But this does not mean that POST is truly
secure. For real security you have to look into encryption which is an entirely
different topic
Question:
What are methods of HttpServlet?
Answer: The methods of HttpServlet class are :
* doGet() is used to handle the GET, conditional GET, and HEAD requests
* doPost() is used to handle POST requests
* doPut() is used to handle PUT requests
* doDelete() is used to handle DELETE requests
* doOptions() is used to handle the OPTIONS requests and
* doTrace() is used to handle the TRACE requests
Question: What are the advantages of Servlets over CGI programs?
Answer: Question: What are methods of HttpServlet?
Answer: Java Servlets have a number of advantages over CGI and other
API's. They are:
-
Platform Independence
Java Servlets are 100% pure Java, so it is platform independence. It 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 very 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. This intuitive method of servlets
could be use to develop high speed data driven web sites.
-
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 takes all these advantages and can be extended from existing
class the provide the ideal solutions.
-
Safety
Java provides a 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
NEXT