The
javax.servlet.Servlet interface defines the three methods known as life-cycle
method. public void init(ServletConfig config) throws
ServletException public void service( ServletRequest req, ServletResponse
res) throws ServletException, IOException public void
destroy() First the servlet is constructed, then initialized
wih the init() method. Any request from client are
handled initially by the service() method before
delegating to the doXxx() methods in the case of
HttpServlet.
The servlet is removed from service, destroyed with the
destroy() methid, then garbaged collected and
finalized.
What is the difference between the getRequestDispatcher(String path)
method of javax.servlet.ServletRequest interface and
javax.servlet.ServletContext interface?
A:
The
getRequestDispatcher(String path) method of javax.servlet.ServletRequest
interface accepts parameter the path to the resource to be included or forwarded
to, which can be relative to the request of the calling servlet. If the path
begins with a "/" it is interpreted as relative to the current context
root.
The getRequestDispatcher(String path) method of
javax.servlet.ServletContext interface cannot accepts relative paths. All path
must sart with a "/" and are interpreted as relative to curent context
root.
Explain the
directory structure of a web application.
A:
The
directory structure of a web application consists of two parts. A private
directory called WEB-INF A public resource directory which contains public
resource folder.
ServletContext interface is a window for a servlet to view it's
environment. A servlet can use this interface to get information such as
initialization parameters for the web applicationor servlet container's version.
Every web application has one and only one ServletContext and is accessible to
all active resource of that application.
A
container doesnot initialize the servlets ass soon as it starts up, it
initializes a servlet when it receives a request for that servlet first time.
This is called lazy loading. The servlet specification defines the
<load-on-startup> element, which can be specified in the deployment
descriptor to make the servlet container load and initialize the servlet as soon
as it starts up. The process of loading a servlet before any request comes in is
called preloading or preinitializing a servlet.
What is the difference between Difference between doGet() and
doPost()?
A:
A
doGet() method is limited with 2k of data to be sent, and doPost() method
doesn't have this limitation. A request string for doGet() looks like the
following:
http://www.allapplabs.com/svt1?p1=v1&p2=v2&...&pN=vN doPost()
method call doesn't need a long text tail after a servlet name in a request. All
parameters are stored in a request itself, not in a request string, and it's
impossible to guess the data transmitted to a servlet only looking at a request
string.
What is the difference between HttpServlet and
GenericServlet?
A:
A
GenericServlet has a service() method aimed to handle requests. HttpServlet
extends GenericServlet and adds support for doGet(), doPost(), doHead() methods
(HTTP 1.0) plus doPut(), doOptions(), doDelete(), doTrace() methods (HTTP 1.1).
Both these classes are abstract.
What is the difference between ServletContext and
ServletConfig?
A:
ServletContext: Defines a set of methods that a servlet
uses to communicate with its servlet container, for example, to get the MIME
type of a file, dispatch requests, or write to a log file.The ServletContext
object is contained within the ServletConfig object, which the Web server
provides the servlet when the servlet is initialized
ServletConfig: The object created after a servlet is
instantiated and its default constructor is read. It is created to pass
initialization information to the servlet.