Interview question of Servlets


1) What is servlet?

Ans: Servlets are modules that extend request/response-oriented  servers, such as java-enabled web servers. For example, a servlet might be responsible for taking data in an HTML order-entry form and applying the business logic used to update a company’s order database.

2) What are the classes and  interfaces for servlets?

Ans: There are two packages in servlets and they are javax.servlet and javax.servlet.http.

Javax.servlet contains:

Interfaces                       Classes

Servlet                           Generic Servlet

ServletRequest               ServletInputStream

ServletResponse            ServletOutputStream

ServletConfig                 ServletException

ServletContext               UnavailableException

SingleThreadModel

Javax.servlet.http contains:

Interfaces                                          Classes

HttpServletRequest                            Cookie

HttpServletResponse                         HttpServlet

HttpSession                                       HttpSessionBindingEvent

HttpSessionContext                           HttpUtils

HttpSeesionBindingListener

3) What is the difference between an applet and a servlet?

Ans:     a) Servlets are to servers what applets are to browsers.

b) Applets must have graphical user interfaces whereas servlets have no graphical user interfaces.

4)what is the lifecycle of a servlet.

Ans: Each Servlet has the same life cycle:

a)A server loads and initializes the servlet by init () method.

b)The servlet handles zero / more client’s requests through service()              method.

c)The server removes the servlet through destroy() method.

5) What is the ServletConfig() and why are using ServletConfig ?

Ans: This interface is implemented by services in order to pass

configuration information to a  servlet when it is first loaded.Aservice writer implementing this  interface must write methods

for the servlet to use to get its initialization parameters and the context in which it is running.public interface ServletConfig

6) What is meant by the ServletContext() and use of the method ?

Ans:  The ServletContext interface gives servlets access to information about their environment ,and allows them to log significant events. Servlet writers decide  what data to log. The interface is implemented by services, and used by servlets. Different virtual hosts should have different servlet contexts.

public interface ServletContext

7) What is use of parseQueryString ?

Ans: Parses a query string and builds a hashtable of key-value pairs, where the values are arrays of strings. The query string should have the form of a string packaged by the GET or POST method. (For example, it should have its key-value pairs delimited by ampersands (&) and its  keys separated from its values by equal signs (=).)

Note:

public static Hashtable parseQueryString(String s)

8)what are the types of servlets.

Ans: Genereic Servlets,HttpServlets.

9)what are the different methods in HttpServlet.

Ans: doGet(),doPost(),doHead,doDelete(),deTrace()

10)What is the difference between GET and POST.

Ans: a) doGet() method is used to get information, while doPost( ) method  is used for posting information.

b) doGet() requests can’t send large amount of information and is limited to 240-255 characters. However,doPost( )requests passes all of its data, of unlimited length.

c) A doGet( ) request is appended to the request URL in a query string and this allows the exchange is visible to the client, whereas a doPost() request passes directly over the socket connection as part  of its  HTTP request body and the exchange are invisible to the  client.

11) Why do you need both GET and POST method implementations in Servlet?

Ans: A single servlet can be called from differenr HTML pages,so Different method calls can be possible.

12)When init() and Distroy() will be called.

Ans: init() is called whenever the servlet is loaded for the first time into the webserver.destroy() will be called whenever the servlet is removed from the webserver.

13) Who is loading the init() method of servlet?

Ans: Web server

14)If you want to modify the servlet,will the Webserver need to be ShutDown.

Ans:No

15)What is the advantage of Servlets over other serverside technologies.

Ans: PlatForm independent, so once compiled can be used in any webserver.For different processes different threads will execute in-built mutithreaded.

16) What is Server-Side Includes (SSI)?

Ans: Server-Side Includes allows embedding servlets within HTML pages using   a special servlet tag. In many servlets that support servlets, a page  can be processed by the server to include output from servlets at  certain points inside the HTML page. This is accomplished using a  special internal SSINCLUDE, which processes the servlet tags.SSINCLUDE

servlet will be invoked whenever a file with an. shtml extension is  requested.So HTML files that include  server-side includes must be   stored with an .shtml extension.

17)What is Single Threaded Model in Servlets and how is it useful give one practical example.

Ans: For every single user a differnt copy of this servlet is executed.        For  Ex: To do Credit card transactions.

18) What is the uses Sessions ?

Ans: Its a part of the SessionTracking and it is for mainting the client  state at server side.

****19)What are the advantage  of using Sessions over Cookies and URLReWriting?

Ans: Sessions are more secure and fast becasue they are stored at serverside. But Sessions has to be used combindly with Cookies or URLReWriting for mainting the client id that is sessionid at client side.Cookies are stored  at client side so some clients may disable cookies   so we may not sure that the cookies which  we are mainting  may work  or not but in sessions cookies are disable we can maintain our   sessionid using URLReWriting .In URLReWriting we can’t maintain large data because it leads to    network traffic and access may be become slow.Where as in seesions   will not maintain the data which we have to maintain instead we will maintain only the session id.

20) What is session tracking and how do you track a user session in servlets?

Ans: Session tracking is a mechanism that servlets use to maintain state  about a series of  requests from the same user across some period of time.The methods used for session tracking are:

a) User Authentication – occurs when a web server restricts access to      some of its resources to only those clients that log in using a recognized username and password

b) Hidden form fields – fields are added to an HTML form that are not displayed in the client’s browser. When the form containing the  fields is submitted,

the fields are sent back to the server

c) URL rewriting – every URL that the user clicks on is dynamically  modified or rewritten to include extra information. The extra information can be in the form of extra path information, added  parameters or some custom, server-specific URL change.

d) Cookies – a bit of information that is sent by a web server to a browser and which can later be read back from that browser.

e) HttpSession – places a limit on the number of sessions that can        exist in memory. This limit is set in the     session.maxresidents       property

21)What is Cookies and what is the use of Cookies ?

Ans: Cookies are used to get user agents (web browsers etc) to hold small amounts of state associated with a user’s web browsing.Later that  infromation read by server

22) What are cookies and how will you use them?

Ans: Cookies are a mechanism that a servlet uses to have a client hold a   small amount of state-information associated with the user.a) Create a cookie with the Cookie constructor:

public Cookie(String name, String value)

b) A servlet can send a cookie to the client by passing a Cookie object to the addCookie() method of

HttpServletResponse:public void HttpServletResponse.addCookie(Cookie cookie)

c) A servlet retrieves cookies by calling the getCookies() method of HttpServletRequest:public Cookie[ ] HttpServletRequest.getCookie( ).

23) How many Cookies is supported to the host ?

Ans: User agents excepted to support twenty per host.And its take fourKilobytes each.

24) What is the use of setComment and getComment methods in Cookies ?

Ans:

setComment: If a user agent (web browser) presents this cookie to a user, the cookie’s purpose will be described using this comment. This  is not supported by version zero cookies.

public void setComment(String use)

{

}

getComment:  Returns the comment describing the purpose of this cookie, or null if no such comment has been defined.

25)Why we are used setMaxAge() and getMaxAge() in Cookies ?

Ans:  setMaxAge

public void setMaxAge(int expiry)

Sets the maximum age of the cookie.The cookie will expire after that many seconds have passed.Negative values indicate the default behaviour:the cookie is not stored persistently, and will be deleted when the user agent exits.A zero value causes the cookie to be deleted

getMaxAge():

public int getMaxAge()

Returns the maximum specified age of the cookie. If none was specified, a negative value is returned, indicating the default behaviour described with setMaxAge.

26)What is the use of setSecure() and getSecure() in Cookies ?

Ans: setSecure

Indicates to the user agent that the cookie should only be sent using a secure protocol (https). This should only be set when the cookie’s originating server used a secure protocol to set the cookie’s value.

public void setSecure(boolean flag)

getSecure:

Returns the value of the ‘secure’ flag.

public boolean getSecure()

27)What is meant by Httpsession and what is the use of sessions ?

Ans: The HttpSession interface is implemented by services to provide an

association between an HTTP client and HTTP server. This session,

persists over multiple connections and/or requests during a given time

period. Sessions are used to maintain state and user identity across

multiple page requests.

HttpSession session = req.getSession(true);

28) What are the methods in HttpSession and use of those methods?

Ans:

a)         getCreationTime()

Returns the time at which this session representation was created.

b)         getId()

Returns the identifier assigned to this session.

c)         getLastAccessedTime()

Returns the last time the client sent a request carrying the    identifier assigned to the session.

d)         getSessionContext()

Returns the context in which this session is bound.

e)   getValue(String)

Returns the object bound to the given name in the session’s

application layer data.

f)                       getValueNames()

Returns an array of the names of all the application layer data

objects bound into the session.

g)         invalidate()

Causes this representation of the session to be invalidated and   removed from its context.

h)         isNew()

A session is considered to be “new” if it has been created by the server, but the client has not yet acknowledged joining the session.

j)          putValue(String, Object)

Binds the specified object into the session’s application layer data   with the given name.

k)         removeValue(String)

Removes the object bound to the given name in the session’s application layer data.

29) How do you communicate between the servlets.

Ans: a)servlet chaning

b)Servlet context(RequestDespatcher interface)

30)Can you send the mail from a servlet ,if yes tell how?

Ans:yes.using mail API

31)How do you access variables across the sessions.

Ans:Through ServletContext.

32)where the session data will store?

ans: session objects

33)What is Servlet Context?

Ans:This object represents resources shared by a group of servlets like

servlet’s environment,Application attributes shared in the context

level.

34)How do you trap the debug the errors in servlets.

Ans:error log file

35)How do you debug the Servlet?

Ans:through servlet log();

36)How do u implement threads in servlet?

Ans:Intenally implemented

37)How do you handle DataBase access and in which method of the servlet do you like to create connection.

Ans:init()

38)If you want to improve the performance how do you create connections for multiple users?

A.Connection Pooling.

39)what is connection pooling?

Ans:Class which manages no of user requests for connections to improve the

performance.

40) What are the different servers available for developing and deploying Servlets?

Ans:                    a)    JRun2.0–Allaire

b)    Apache—jserv

c)    jwsdk2.0 –sun

d)    servletexec

e)    Tomcat webserver—tomcat

f)     Weblogic AS—BEA Systems

g)    NetDynamics5.0–sun

h)    Iplanet—sun&netscape

i)     Netscape—netscape

g)    IBM websphere—IBM

h)    oracle—oracle

i)     Proton-Pramati technologies

41) Is it possible to communicate from an applet to servlet and how many ways and how?

Ans: Yes, there are three ways to communicate from an applet to servlet and

they are:

a)                 HTTP Communication(Text-based and object-based)

b)                 Socket Communication

c)                 RMI Communication

(You can say, by using URL object open the connection to server

and get the InputStream from URLConnection  object).

Steps involved for applet-servlet communication:

step: 1               Get the server URL.

URL url = new URL();

step: 2               Connect to the host

URLConnection Con = url.openConnection();

step: 3               Initialize the connection

Con.setUseCatches(false):

Con.setDoOutput(true);

Con.setDoInput(true);

step: 4               Data will be written to a byte array buffer so that we can tell the server the length of the data.

ByteArrayOutputStream byteout  = new ByteArrayOutputStream();

step: 5               Create the OutputStream to be used to write the data to the                 buffer.

DataOutputStream out = new DataOutputStream(byteout);

42) Why should we go for interservlet communication?

Ans: Servlets running together in the same server communicate with each

other in several ways.The three major reasons to use interservlet communication are:

a)Direct servlet manipulation – allows to gain access to the other currently loaded servlets and perform certain tasks (through the ServletContext object)

b)Servlet reuse – allows the servlet to reuse the public methods of another servlet.

c)Servlet collaboration – requires to communicate with each other by sharing specific information (through method invocation)

43) Is it possible to call servlet with parameters in the URL?

Ans: Yes. You can call a servlet with parameters in the syntax as

(?Param1 = xxx || m2 = yyy).

44) What is Servlet chaining?

Ans: Servlet chaining is a technique in which two or more servlets can  cooperate in servicing a single request.In servlet chaining, one  servlet’s output is piped to the next servlet’s input. This process continues until the last servlet is reached. Its output is then sent back to the client.

45) How do servlets handle multiple simultaneous requests?

Ans: The server has multiple threads that are available to handle requests.  When a request comes in, it is assigned to a thread, which calls a  service method (for example: doGet(), doPost( ) and service( ) ) of the servlet. For this reason, a single servlet object can have its service methods called by many threads at once.

46) How are Servlets and JSP Pages related?

Ans: JSP pages are focused around HTML (or XML) with Java codes and JSP tags inside them. When a web server that has JSP support is asked for a JSP page, it checks to see if it has already compiled the page into a servlet. Thus, JSP pages become servlets and are transformed into pure Java and then compiled, loaded into the server and executed.Servlets:

47).How do servlets handle multiple simultaneous requests?

Ans: Using Threads

48).How do I automatically reload servlets?

Ans:depends upon the server’s servlet reload properites.

48).My servlet, which ran correctly under the Servlet 2.0 APIs (Java Web Server 1.1.3) is  not running under the Servlet 2.1 APIs (Java Web Server 2.0). What’s wrong?

Ans:You might have used servlet to servlet communication by usingservletcontext methods like getServlet(),getServlets() which are  depricated and returns null from new release that is from servlet2.1 API.

49) What are the types of ServletEngines?

Standalone ServletEngine: A standalone engine is a server that includes built-in support for servlets.

Add-on ServletEngine: Its a plug-in to an existing server.It adds servlet support to a server that was not originally designed with servlets in mind.Embedded ServletEngine: it is a lightweight servlet deployment platform that can be embedded in another application.that application become true server.

****50)what is httptunneling?

ans: it is mechanism of performing both write and read operations using http protocol.it is extending the functionality of htp protocol.

51).How do I use native code in a servlet?

Ans:

49)What’s with the javax.servlet package naming?

Ans:

50. List out Differences between CGI Perl and Servlet?

Servlet                                                                                      CGI

Platform independent                                        Platform dependent.

Language dependent                                         Language independent.

Pin it

Introduction to JSON (Javascript Object Notation)

What is JSON?
JSON (Javascript Object Notation) is a light weight data interchange format. JSON is a subset of the literal object notation in JavaScript. It can be compared to XML but parsing of JSON is very much easier than XML data. It is a text format of data and is programming language independent. In fact it very much looks like unnamed array.

Example of data in JSON
Shown below is a object declared in JSON format.

var individual = {
     "firstName": "Anky",
     "lastName": "Singh",
     "address": {
                       "streetAddress": "4th Avenue",
                       "city": "Moorpark",
                       "state": "CA",
                       "postalCode": 34523
                    },
     "phoneNumbers": [
                                 "212 555-1234",
                                 "646 555-4567"
                             ]
 };

alert("The name of Individual is " + individual.firstName + " " +  individual.lastName);
alert("The Street Address is " + individual.address.streetAddress);
alert("The Postal code is " + individual.address.postalCode);
alert("First Phone Number  is " + individual.phoneNumbers[0]);
alert("Second Phone Number  is " + individual.phoneNumbers[1]);

<em>Output would be alert windows with following messages</em>:
The name of Individual is Anky Singh
The Street Address is 4th Avenue
The Postal code is 34523
First Phone Number  is 212 555-1234
Second Phone Number  is 646 555-4567

Above code shows how an Individual object is declared using JSON. Alert statements provide an example how the properties of the object can be accessed in the same way as we do in C# or Java.

Being subset of literal notation JSON standard has got stricter rules. See www.json.org or RFC 4627 for a more formal description of the standard.

But all said simplicity of JSON data is the specialty of the standard.

kick it on DotNetKicks.com

Adapter Design Pattern in Java

Adapter Design pattern – Structural Patterns

Adapter pattern Convert the existing interfaces to a new interface to achieve compatibility and re usability of the unrelated classes in one application. Also known as Wrapper pattern. An adapter allows classes to work together that normally could not because of incompatible interfaces, by providing its interface to clients while using the original interface. The adapter translates calls to its interface into calls to the original interface, and the amount of code necessary to do this is typically small. The adapter is also responsible for transforming data into appropriate forms. . When a client specifies its requirements in an interface, you can usually create a new class that implements the interface and subclasses an existing class. This approach creates a class adapter that translates a client’s calls into calls to the existing class’s methods.

The Adapter in the Real World
The concept of an Adapter is as the name suggest. It will do what is expected It adapts one object to that of another. Suppose we have any device which will work on 10 Ampere. But we don’t have plug of 10 ampere, then we need an Adapter to work that device .In similar way this design pattern works.

The Adapter in the Software
Here also it is working as same.. When you want to work or use one class to another class that was not designed to fit together, we need a adapter class.

There are two ways of implementing the Adapter Pattern, either use the Inheritance or use the composition.
Let’s do it with the approach of Inheritance.Lets take an example.

PrintOutput.java

package structural.adapter.inheritance;

public interface PrintOutput {
public String getOutput();
}

SystemVinay.java

package structural.adapter.inheritance;
public class SystemVinay{
private String specification = "Hi ,This is adapter Design Pattern";
public String getInput() {
return specification;
}
}// End of class

Finally, there will be an adapter class. This will inherit the PrintOutput and give output for SystemVinay.

OutPutAdapter.java

package structural.adapter.inheritance;
/**
* OutPutAdapter has is the connector between
* the SystemVinayand PrintOutput so as to make the interface
* of one system to suit the client.
*/
public class OutPutAdapter implements PrintOutput {
/**
* Method coming from the interface
* SystemVinaywhich we have to make to
* fit the client SystemVinay
*
* @return Desired output of “Hi ,This is adapter Design Pattern”
*/
public String getOutput() {
SystemVinaysystem = new SystemVinay();
String output = system.getInput();
return output;
}
}// End of class

This class implements the getOutput() method of SystemVinayand sets it to fit the client output.

In- Summary We can say Adapter design pattern is – A class extends another class, takes in an object, and makes the taken object behave like the extended class.

pimp it