Tag Archives: part 2

Spring Framework Vs. JEE – Part II

As promised this is my second part of my blog. The first part of the blog can be accessed from here.

As part writing this blog i browsed through various blogs on the same topic. As i told in my first blog, this really is a holy war and over coming few months and years, this will rage even harder.

I bust out into laugh after reading one of the blogs, the link for which is as given below:-


The point that i burst outlaughing when the author stated as below:-


…… Java EE 5 took a few pages out of Spring’s book and simplified the development of enterprise components with…….


Yes, JEE sure did take some very crucial and important pages out of Spring book and because of which it is becoming superior day-by-day if not by huge margin. Spring with full support from its community is not far behind and with foundation in place, its building up components one after another. Its also adding in more and more support for open source libraries with ever growing sub-projects under the Spring Framework umbrella.

Also now its is slowly becoming a norm when considering a new open source for development to see how strongly it can be integrated into Spring and how seamless Spring configurations can be used. In my web service framework comparison, you wouldn’t believe, this was considered as one of the requirements and it will be a bonus for any open source to state that “they can be integrated into Spring” with some few lines of Java or XML configuration.

Spring has an edge by keeping it open for good open source libraries to plug on at any time and replace these libraries with a new one by mere configurations (at-least theoretically possible… :)). Java theoretically is “Write once run anywhere”, but is it truly that easy for a a production application to move from one environment to a new one… Hmmm… I don’t think so… 🙂

I am sort of exhausted already writing this blog. I will have to put you all in some suspense and put everything else that i plan to write in a new blog part. Hold on tight and i am sure i wouldn’t make you unhappy. Expect third part in another 3 days time. Its weekend here and i am really looking forward to it in a big way.

Page Visitors: 380

Spring Book – Part II – Core Support by Spring

Any enterprise application is typically made of multiple components working in tandem to realize a business case. Usually the objects communicate with each other in some form to achieve this in an application. Achieving component interaction can be cumbersome and difficult to implement in any application. Even if it is considered easy to do, it might become very hard to replace a component with other component due to challenging business scenarios. Spring Framework does this sort of component interaction which can be seamlessly changed with changing scenarios efficiently and easily.

Part 2 builds on what you learned in Part 1 by delving into greater detail on Spring and its various features. Part 2 also focuses on the main goals and objectives that the Spring Framework addresses in an enterprise application. It’s quite a big part which spans eight Chapters in whole and gives the various core supports which the Spring framework provides, so that you can achieve these capabilities with ease while developing your application.

In Chapter 3, “Spring Quick Start,” I will explain how Spring works and is the basic principles it is based on. We’ll take a detailed look at bean definitions, accessing bean instance and various bean scopes available in the Spring Framework. We’ll also dig into Dependency Injection, the ApplicationContext class, and the ApplicationContext Lifecycle. We’ll do a deep dive into the various phases of the lifecycle so that you can get a solid understanding of the crux of the Spring Framework.

In Chapter 4 “Configuration Styles”, I will be explaining the various configuration styles that you can use in your Spring applications. On the way I will be giving brief explanation on the various annotations that you could use and finally gives a gives idea on the best practices for using various configuration styles in your application.

In Chapter 5, “Application Configuration – Simplified”, I will be giving some ideas as to how you can use he various simplification methods whereby you can reduce the configuration in your Spring application. I will also give you best practices that you can follow in some details with code samples.

In Chapter 6, “Enterprise Integration”, I will be covering enterprise integration capability which the Spring framework provides, which helps to easily integrate your application components to other components within the same application or third party application.

In Chapter 7, “Testing”, I will first be covering the general testing methodologies in any application to some detail. After that I will be covering each testing methodology along with the support provided by the Spring framework.

In Chapter 8, “Data Access”,  I will be giving you details as to how Spring framework supports in interacting between data access layer and the service layer in your application.

In Chapter 9, “Transaction Management”, transaction support by Spring framework is explained in full detail along with various basic transaction concepts which is key in any enterprise application that you will develop.

In Chapter 10, “Caching”, I will be explaining the various caching mechanisms that you can use in your applications and Spring’s support to do this integration with ease.

Chapter 3: Spring Quick Start

Chapter 4: Configuration Styles

Chapter 5: Application Configuration – Simplified

Chapter 6: Enterprise Integration

Chapter 7: Testing

Chapter 8: Data Access

Chapter 9: Transaction Management

Chapter 10: Caching

Page Visitors: 621

Basic Java FAQ – Part 2

51)How do you set security in applets?

Ans: using setSecurityManager() method

52) What is an event and what are the models available for event handling?

Ans: An event is an event object that describes a state of change in a source. In other words, event occurs when an action is generated, like pressing button, clicking mouse, selecting a list, etc.

There are two types of models for handling events and they are:

a) event-inheritance model and b) event-delegation model

53) What are the advantages of the model over the event-inheritance model?

Ans: The event-delegation model has two advantages over the event-inheritance model. They are:

a)It enables event handling by objects other than the ones that generate the events. This allows a clean separation between a component’s design and its use.

b)It performs much better in applications where many events are generated. This performance improvement is due to the fact that the event-delegation model does not have to be repeatedly process unhandled events as is the case of the event-inheritance.

54)What is source and listener ?

Ans: source : A source is an object that generates an event. This occurs when the internal state of that object changes in some way.

listener : A listener is an object that is notified when an event occurs. It has two major requirements. First, it must have been registered with one or more sources to receive notifications about specific types of events.

Second, it must implement methods to receive and process these notifications.

55) What is adapter class?

Ans: An adapter class provides an empty implementation of all methods in an event listener interface. Adapter classes are useful when you want to receive and process only some of the events that are handled by a particular event listener interface. You can define a new class to act listener by extending one of the adapter classes and implementing only those events in which you are interested.

For example, the MouseMotionAdapter class has two methods, mouseDragged( )and mouseMoved(). The signatures of these empty are exactly as defined in the MouseMotionListener interface. If you are interested in only mouse drag events, then you could simply extend MouseMotionAdapter and implement mouseDragged( ) .

56)What is meant by controls and what are different types of controls in AWT?

Ans: Controls are components that allow a user to interact with your application and the AWT supports the following types of controls:

Labels, Push Buttons, Check Boxes, Choice Lists, Lists, Scrollbars, Text Components.

These controls are subclasses of Component.

57) What is the difference between choice and list?

Ans: A Choice is displayed in a compact form that requires you to pull it down to see the list of available choices and only one item may be selected from a choice.

A List may be displayed in such a way that several list items are visible and it supports the selection of one or more list items.

58) What is the difference between scrollbar and scrollpane?

Ans: A Scrollbar is a Component, but not a Container whereas Scrollpane is a Conatiner and handles its own events and perform its own scrolling.

59) What is a layout manager and what are different types of layout managers available in java.awt?

Ans: A layout manager is an object that is used to organize components in a container. The different layouts are available are FlowLayout, BorderLayout, CardLayout, GridLayout and GridBagLayout.

60) How are the elements of different layouts organized?

Ans: FlowLayout: The elements of a FlowLayout are organized in a top to bottom, left to right fashion.

BorderLayout: The elements of a BorderLayout are organized at the borders (North, South, East and West) and the center of a container.

CardLayout: The elements of a CardLayout are stacked, on top of the other, like a deck of cards.

GridLayout: The elements of a GridLayout are of equal size and are laid out using the square of a grid.

GridBagLayout: The elements of a GridBagLayout are organized according to a grid.

However, the elements are of different size and may occupy more than one row or column of the grid. In addition, the rows and columns may have different sizes.

61) Which containers use a Border layout as their default layout?

Ans: Window, Frame and Dialog classes use a BorderLayout as their layout.

62) Which containers use a Flow layout as their default layout?

Ans: Panel and Applet classes use the FlowLayout as their default layout.

63) What are wrapper classes?

Ans: Wrapper classes are classes that allow primitive types to be accessed as objects.

64) What are Vector, Hashtable, LinkedList and Enumeration?

Ans: Vector : The Vector class provides the capability to implement a growable array of objects.

Hashtable : The Hashtable class implements a Hashtable data structure. A Hashtable indexes and stores objects in a dictionary using hash codes as the object’s keys. Hash codes are integer values that identify objects.

LinkedList: Removing or inserting elements in the middle of an array can be done using LinkedList. A

LinkedList stores each object in a separate link whereas an array stores object references in consecutive locations.

Enumeration: An object that implements the Enumeration interface generates a series of elements, one at a time. It has two methods, namely hasMoreElements( ) and nextElement( ). HasMoreElemnts( ) tests if this enumeration has more elements and nextElement method returns successive elements of the series.

65) What is the difference between set and list?

Ans: Set stores elements in an unordered way but does not contain duplicate elements, whereas list stores elements in an ordered way but may contain duplicate elements.

66) What is a stream and what are the types of Streams and classes of the Streams?

Ans: A Stream is an abstraction that either produces or consumes information. There are two types of Streams and they are:

Byte Streams: Provide a convenient means for handling input and output of bytes.

Character Streams: Provide a convenient means for handling input & output of characters.

Byte Streams classes: Are defined by using two abstract classes, namely InputStream and OutputStream.

Character Streams classes: Are defined by using two abstract classes, namely Reader and Writer.

67) What is the difference between Reader/Writer and InputStream/Output Stream?

Ans: The Reader/Writer class is character-oriented and the InputStream/OutputStream class is byte-oriented.

68) What is an I/O filter?

Ans: An I/O filter is an object that reads from one stream and writes to another, usually altering the data in some way as it is passed from one stream to another.

69) What is serialization and deserialization?

Ans: Serialization is the process of writing the state of an object to a byte stream.

Deserialization is the process of restoring these objects.

70) What is JDBC?

Ans: JDBC is a set of Java API for executing SQL statements. This API consists of a set of classes and interfaces to enable programs to write pure Java Database applications.

71) What are drivers available?

Ans: a) JDBC-ODBC Bridge driver

b) Native API Partly-Java driver

c) JDBC-Net Pure Java driver

d) Native-Protocol Pure Java driver

72) What is the difference between JDBC and ODBC?

Ans: a) OBDC is for Microsoft and JDBC is for Java applications.

b) ODBC can’t be directly used with Java because it uses a C interface.

c) ODBC makes use of pointers which have been removed totally from Java.

d) ODBC mixes simple and advanced features together and has complex options for simple queries. But JDBC is designed to keep things simple while allowing advanced capabilities when required.

e) ODBC requires manual installation of the ODBC driver manager and driver on all client machines. JDBC drivers are written in Java and JDBC code is automatically installable, secure, and portable on all platforms.

f) JDBC API is a natural Java interface and is built on ODBC. JDBC retains some of the basic features of ODBC.

73) What are the types of JDBC Driver Models and explain them?

Ans: There are two types of JDBC Driver Models and they are:

a) Two tier model and b) Three tier model

Two tier model: In this model, Java applications interact directly with the database. A JDBC driver is required to communicate with the particular database management system that is being accessed. SQL statements are sent to the database and the results are given to user. This model is referred to as client/server configuration where user is the client and the machine that has the database is called as the server.

Three tier model: A middle tier is introduced in this model. The functions of this model are:

a) Collection of SQL statements from the client and handing it over to the database,

b) Receiving results from database to the client and

c) Maintaining control over accessing and updating of the above.

74) What are the steps involved for making a connection with a database or how do you connect to a database?

Ans: a) Loading the driver : To load the driver, Class.forName( ) method is used.


When the driver is loaded, it registers itself with the java.sql.DriverManager class as an available

database driver.

b) Making a connection with database : To open a connection to a given database,

DriverManager.getConnection( ) method is used.

Connection con = DriverManager.getConnection (“jdbc:odbc:somedb”, “user”, “password”);

c) Executing SQL statements : To execute a SQL query, java.sql.statements class is used.

createStatement( ) method of Connection to obtain a new Statement object.

Statement stmt = con.createStatement( );

A query that returns data can be executed using the executeQuery( ) method of Statement. This method executes the statement and returns a java.sql.ResultSet that encapsulates the retrieved data:

ResultSet rs = stmt.executeQuery(“SELECT * FROM some table”);

d) Process the results : ResultSet returns one row at a time. Next( ) method of ResultSet object can be called to move to the next row. The getString( ) and getObject( ) methods are used for retrieving column values:

while(rs.next( ) ) {

String event = rs.getString(“event”);

Object count = (Integer) rs.getObject(“count”);

75) What type of driver did you use in project?

Ans: JDBC-ODBC Bridge driver (is a driver that uses native(C language) libraries and makes calls to an existing ODBC driver to access a database engine).

76) What are the types of statements in JDBC?

Ans: Statement — To be used createStatement() method for executing single SQL statement

PreparedStatement — To be used preparedStatement() method for executing same SQL statement over and over

CallableStatement — To be used prepareCall( ) method for multiple SQL statements over and over

77) What is stored procedure?

Ans: Stored procedure is a group of SQL statements that forms a logical unit and performs a particular task. Stored Procedures are used to encapsulate a set of operations or queries to execute on database. Stored procedures can be compiled and executed with different parameters and results and may have any combination of input/output parameters.

78) How to create and call stored procedures?

Ans: To create stored procedures:

Create procedure procedurename (specify in, out and in out parameters)


Any multiple SQL statement;


To call stored procedures:

CallableStatement csmt = con.prepareCall(“{call procedure name(?,?)}”);

csmt.registerOutParameter(column no., data type);

csmt.setInt(column no., column name)

csmt.execute( );

79) 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.

80) 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


Javax.servlet.http contains:

Interfaces Classes

HttpServletRequest Cookie

HttpServletResponse HttpServlet

HttpSession HttpSessionBindingEvent

HttpSessionCintext HttpUtils


81) 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.

82) What is the difference between doPost and doGet methods?

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.

83) What is the life cycle 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 or more client’s requests through service( ) method.

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

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

Ans: Web server

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

Ans: a) Java Web Server

b) JRun

g) Apache Server

h) Netscape Information Server

i) Web Logic

86) How many ways can we track client and what are they?

Ans: The servlet API provides two ways to track client state and they are:

a) Using Session tracking and b) Using Cookies.

87) 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 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

88) 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.

89) 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


public void HttpServletResponse.addCookie(Cookie cookie)

c) A servlet retrieves cookies by calling the getCookies() method of HttpServletRequest:

public Cookie[ ] HttpServletRequest.getCookie( ).

90) 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:

1) Get the server URL.

URL url = new URL();

2) Connect to the host

URLConnection Con = url.openConnection();

3) Initialize the connection




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();

5) Create the OutputStream to be used to write the data to the buffer.

DataOutputStream out = new DataOutputStream(byteout);

91) What is connection pooling?

Ans: With servlets, opening a database connection is a major bottleneck because we are creating and tearing down a new connection for every page request and the time taken to create connection will be more.Creating a connection pool is an ideal approach for a complicated servlet. With a connection pool, we can duplicate only the resources we need to duplicate rather than the entire servlet. A connection pool can also intelligently manage the size of the pool and make sure each connection remains valid. A number of connection pool packages are currently available. Some like DbConnectionBroker are freely available from Java Exchange Works by creating an object that dispenses connections and connection Ids on request.

The ConnectionPool class maintains a Hastable, using Connection objects as keys and Boolean values as stored values. The Boolean value indicates whether a connection is in use or not. A program calls

getConnection( ) method of the ConnectionPool for getting Connection object it can use; it calls

returnConnection( ) to give the connection back to the pool.

92) 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)

93) 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).

94) 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.

95) 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.

96) What is the difference between TCP/IP and UDP?

Ans: TCP/IP is a two-way communication between the client and the server and it is a reliable and there is a confirmation regarding reaching the message to the destination. It is like a phone call.

UDP is a one-way communication only between the client and the server and it is not a reliable and there is no confirmation regarding reaching the message to the destination. It is like a postal mail.

97) What is Inet address?

Ans: Every computer connected to a network has an IP address. An IP address is a number that uniquely identifies each computer on the Net. An IP address is a 32-bit number.

98) What is Domain Naming Service(DNS)?

Ans: It is very difficult to remember a set of numbers(IP address) to connect to the Internet. The Domain Naming Service(DNS) is used to overcome this problem. It maps one particular IP address to a string of characters. For example, www.mascom.com implies com is the domain name reserved for US commercial sites, moscom is the name of the company and www is the name of the specific computer, which is mascom’s server.

99) What is URL?

Ans: URL stands for Uniform Resource Locator and it points to resource files on the Internet.

URL has four components:


http – protocol name, Pentafour – IP address or host name, 80 – port number and index.html – file path.

100) What is RMI and steps involved in developing an RMI object?

Ans: Remote Method Invocation (RMI) allows java object that executes on one machine and to invoke the method of a Java object to execute on another machine.

The steps involved in developing an RMI object are:

a) Define the interfaces

b) Implementing these interfaces

c) Compile the interfaces and their implementations with the java compiler

d) Compile the server implementation with RMI compiler

e) Run the RMI registry

f) Run the application

Page Visitors: 331