Java Application Development Internship Report 2023 24
Java Application Development Internship Report 2023 24
CHAPTER 1
COMPANY PROFILE
1.1 Introduction
Infidata Technologies is an ISO 9001: 2015 Certified Company and registered under MSME,
Government of India, headquartered in Bengaluru started in the year 2015. Company is
highly specialized in the design and development of website, software application
development, Mobile application development, E-Commerce solution and more. Company
has a team of expert’s professional works on the latest software tools and technologies to give
the best and promising services to the customers. Company is equipped with the state-of-art
work station in the software application development.
Vision
Mission
To ensure strategic planning with quality products and profitable growth through
customer service, innovation, quality and commitment.
1.2 Team
1.3 Services
● Internet of Things
● Training Services
The web development process includes web design, web content development, client-
side/server-side scripting and network security configuration, among other tasks.
Web development ranges from creating plain text pages to complex web-based applications,
social network applications and electronic business applications.
Java Application Development Internship
● Client-side coding
● Server-side coding
● Database technology
Mobile applications frequently serve to provide users with similar services to those accessed
on PCs. Apps are generally small, individual software units with limited function.
Vendors usually offer a mobile application platform to clients that want to go mobile or enter
the mobile market. The platform includes migration tools and resources that support a mobile
interface, or a development environment that allows creating new apps aimed at the Apple
and Android markets. A platform approach to mobile application development helps provide
a comprehensive model with tool suites that are accessible to developers and other users.
Internet of things (IoT) is a computing concept that describes the idea of everyday
physical objects being connected to the internet and being able to identify themselves to other
devices. Most people think about being connected in terms of computers, tablets and
smartphones. IoT describes a world where just about anything can be connected and
communicate in an intelligent fashion. In other words, with the internet of things, the physical
world is becoming one big information system.
The training programs that are organized by us are of the best standards. We have
some of the best trainers who conduct these programs. All these trainers have been in the
industry for a long period. They know the problems faced by the industries. They have the
total firsthand knowledge. Their rich experience is something that you would gain from. They
Java Application Development Internship
can train students/ employee step by step. We offers training on Full stack Java, Full Stack
Web, Python, Machine Learning and AI, Data Science, Data Analytics ,Mobile Application
Development, Software Testing and More.
● Billing Software
● ERP Solutions
Streams Inc
Vishnu Enterprises
Deepthi Engineering
JB Transport India
BreakDQ
SJCPU
Rbits Technologies
Java Application Development Internship
CHAPTER 2
INTERNSHIP DOMAIN
2.1 Introduction
JAVA
Java is a small, simple, safe, object oriented, interpreted or dynamically optimized, byte
coded, architectural, garbage collected, multithreaded programming language with a strongly
typed exception-handling for writing distributed and dynamicaly extensible programs.
Special programs called applets that can be downloaded from the internet and played safely
within a web browser. Java a supports this application and the follow features make it one of
the best programming languages.
The original and reference implementation Java compilers, virtual machines, and class
libraries were developed by Sun from 1995. As of May 2007, in compliance with the
specifications of the Java Community Process, Sun made available most of their Java
technologies as free software under the GNU General Public License. Others have also
developed alternative implementations of these Sun technologies, such as the GNU Compiler
for Java and GNU Class path.
The Java language was created by James Gosling in June 1991 for use in a set top box
project. The language was initially called Oak, after an oak tree that stood outside Gosling's
office - and also went by the name Green - and ended up later being renamed to Java, from a
list of random words. Gosling's goals were to implement a virtual machine and a language
that had a familiar C/C++ style of notation.
Primary goals
There were five primary goals in the creation of the Java language:
The Java platform is the name for a bundle of related programs, or platform,
from Sun which allow for developing and running programs written in the Java programming
language. The platform is not specific to any one processor or operating system, but rather an
execution engine (called a virtual machine) and a compiler with a set of standard libraries
which are implemented for various hardware and operating systems so that Java programs
can run identically on all of them.
Java SE (Standard Edition): For general purpose use on desktop PCs, servers and
similar devices.
Java EE (Enterprise Edition): Java SE plus various APIs useful for multi-tier client-
server enterprise applications. The Java Platform consists of several programs, each of
which provides a distinct portion of its overall capabilities. For example, the Java
compiler, which converts Java source code into Java bytecode (an intermediate
language for the Java Virtual Machine (JVM)), is provided as part of the Java
Development Kit (JDK). The sophisticated Java Runtime Environment (JRE),
complementing the JVM with a just-in-time (JIT) compiler, converts intermediate
bytecode into native machine code on the fly. Also supplied are extensive libraries
(pre-compiled into Java bytecode) containing reusable code, as well as numerous
ways for Java applications to be deployed, including being embedded in a web page
as an applet.There are several other components, some available only in certain
editions.
The essential components in the platform are the Java language compiler, the libraries, and
the runtime environment in which Java intermediate bytecode "executes" according to the
rules laid out in the virtual machine specification.
The heart of the Java Platform is the concept of a "virtual machine" that executes
Java bytecode programs. This bytecode is the same no matter what hardware or operating
system the program is running under. There is a JIT compiler within the Java Virtual
Machine, or JVM. The JIT compiler translates the Java bytecode into native processor
instructions at run-time and caches the native code in memory during execution.
The use of bytecode as an intermediate language permits Java programs to run on any
platform that has a virtual machine available. The use of a JIT compiler means that Java
applications, after a short delay during loading and once they have "warmed up" by being all
or mostly JIT-compiled, tend to run about as fast as native programs and Every Operating
System has its own JVM.
Class libraries
In most modern operating systems, a large body of reusable code is provided to simplify the
programmer's job. This code is typically provided as a set of dynamically loadable libraries
that applications can call at runtime. Because the Java Platform is not dependent on any
specific operating system, applications cannot rely on any of the existing libraries. Instead,
the Java Platform provides a comprehensive set of standard class libraries, containing much
of the same reusable functions commonly found in modern operating systems.
The Java class libraries serve three purposes within the Java Platform. Like other standard
code libraries, they provide the programmer a well-known set of functions to perform
common tasks, such as maintaining lists of items or performing complex string parsing. In
addition, the class libraries provide an abstract interface to tasks that would normally depend
heavily on the hardware and operating system. Tasks such as network access and file access
are often heavily dependent on the native capabilities of the platform. The Java java.net and
java.io libraries implement the required native code internally, then provide a standard
interface for the Java applications to perform those tasks. Finally, when some underlying
platform does not support all of the features a Java application expects, the class libraries can
either emulate those features using whatever is available, or at least provide a consistent way
to check for the presence of a specific feature.
Java Application Development Internship
Platform independence
One characteristic, platform independence, means that programs written in the Java language
must run similarly on any supported hardware/operating-system platform. One should be able
to write a program once, compile it once, and run it anywhere.
This is achieved by most Java compilers by compiling the Java language code halfway (to
Java bytecode) – simplified machine instructions specific to the Java platform. The code is
then run on a virtual machine (VM), a program written in native code on the host hardware
that interprets and executes generic Java bytecode. (In some JVM versions, bytecode can also
be compiled to native code, either before or during program execution, resulting in faster
execution.) Further, standardized libraries are provided to allow access to features of the host
machines (such as graphics, threading and networking) in unified ways. Note that, although
there is an explicit compiling stage, at some point, the Java bytecode is interpreted or
converted to native machine code by the JIT compiler.
The first implementations of the language used an interpreted virtual machine to achieve
portability. These implementations produced programs that ran more slowly than programs
compiled to native executables, for instance written in C or C++, so the language suffered a
reputation for poor performance. More recent JVM implementations produce programs that
run significantly faster than before, using multiple techniques.
One technique, known as just-in-time compilation (JIT), translates the Java byte code into
native code at the time that the program is run, which results in a program that executes faster
than interpreted code but also incurs compilation overhead during execution. More
sophisticated VMs use dynamic recompilation, in which the VM can analyze the behavior of
the running program and selectively recompile and optimize critical parts of the program.
Dynamic recompilation can achieve optimizations superior to static compilation because the
dynamic compiler can base optimizations on knowledge about the runtime environment and
the set of loaded classes, and can identify the hot spots (parts of the program, often inner
Java Application Development Internship
loops, that take up the most execution time). JIT compilation and dynamic recompilation
allow Java programs to take advantage of the speed of native code without losing portability.
Another technique, commonly known as static compilation, is to compile directly into native
code like a more traditional compiler. Static Java compilers, such as GCJ, translate the Java
language code to native object code, removing the intermediate byte code stage. This
achieves good performance compared to interpretation, but at the expense of portability; the
output of these compilers can only be run on a single architecture. Some see avoiding the VM
in this manner as defeating the point of developing in Java; however it can be useful to
provide both a generic byte code version, as well as an optimized native code version of an
application.
One of the ideas behind Java's automatic memory management model is that programmers be
spared the burden of having to perform manual memory management. In some languages the
programmer allocates memory for the creation of objects stored on the heap and the
responsibility of later deallocating that memory also resides with the programmer. If the
programmer forgets to deallocate memory or writes code that fails to do so, a memory leak
occurs and the program can consume an arbitrarily large amount of memory. Additionally, if
the program attempts to deallocate the region of memory more than once, the result is
undefined and the program may become unstable and may crash. Finally, in non garbage
collected environments, there is a certain degree of overhead and complexity of user-code to
track and finalize allocations. Often developers may box themselves into certain designs to
provide reasonable assurances that memory leaks will not occur.
In Java, this potential problem is avoided by automatic garbage collection. The programmer
determines when objects are created, and the Java runtime is responsible for managing the
object's lifecycle. The program or other objects can reference an object by holding a reference
to it (which, from a low-level point of view, is its address on the heap). When no references
to an object remain, the Java garbage collector automatically deletes the unreachable object,
freeing memory and preventing a memory leak. Memory leaks may still occur if a
programmer's code holds a reference to an object that is no longer needed—in other words,
they can still occur but at higher conceptual levels.
Java Application Development Internship
The use of garbage collection in a language can also affect programming paradigms. If, for
example, the developer assumes that the cost of memory allocation/recollection is low, they
may choose to more freely construct objects instead of pre-initializing, holding and reusing
them. With the small cost of potential performance penalties (inner-loop construction of
large/complex objects), this facilitates thread-isolation (no need to synchronize as different
threads work on different object instances) and data-hiding. The use of transient immutable
value-objects minimizes side-effect programming.
Comparing Java and C++, it is possible in C++ to implement similar functionality (for
example, a memory management model for specific classes can be designed in C++ to
improve speed and lower memory fragmentation considerably), with the possible cost of
adding comparable runtime overhead to that of Java's garbage collector, and of added
development time and application complexity if one favors manual implementation over
using an existing third-party library. In Java, garbage collection is built-in and virtually
invisible to the developer. That is, developers may have no notion of when garbage collection
will take place as it may not necessarily correlate with any actions being explicitly performed
by the code they write. Depending on intended application, this can be beneficial or
disadvantageous: the programmer is freed from performing low-level tasks, but at the same
time loses the option of writing lower level code. Additionally, the garbage collection
capability demands some attention to tuning the JVM, as large heaps will cause apparently
random stalls in performance.
Java does not support pointer arithmetic as is supported in, for example, C++. This is because
the garbage collector may relocate referenced objects, invalidating such pointers. Another
reason that Java forbids this is that type safety and security can no longer be guaranteed if
arbitrary manipulation of pointers is allowed.
Performance
Java's performance has improved substantially since the early versions, and
performance of JIT compilers relative to native compilers has in some tests been shown to be
quite similar. The performance of the compilers does not necessarily indicate the
performance of the compiled code; only careful testing can reveal the true performance issues
in any system.
Java Application Development Internship
The Java Runtime Environment, or JRE, is the software required to run any
application deployed on the Java Platform. End-users commonly use a JRE in software
packages and Web browser plug-in. Sun also distributes a superset of the JRE called the Java
2 SDK (more commonly known as the JDK), which includes development tools such as the
Java compiler, Java doc, Jar and debugger.
One of the unique advantages of the concept of a runtime engine is that errors
(exceptions) should not 'crash' the system. Moreover, in runtime engine environments such as
Java there exist tools that attach to the runtime engine and every time that an exception of
interest occurs they record debugging information that existed in memory at the time the
exception was thrown (stack and heap values). These Automated Exception Handling tools
provide 'root-cause' information for exceptions in Java programs that run in production,
testing or development environments.
Core Java
HTML, CSS
Java Application Development Internship
Core Java:
"Core Java" is a term often used to refer to the fundamentals and core features of the Java
programming language. It includes the basic concepts and libraries that are essential for any
Java developer to understand. Here are some of the core concepts and features of Java:
2. Platform Independence:
- Java is known for its "write once, run anywhere" capability. It achieves platform
independence through the use of the Java Virtual Machine (JVM), which allows Java code to
run on any platform that has a compatible JVM.
4. Data Types :
- Java supports a variety of data types, including primitive data types (e.g., int, boolean) and
reference data types (e.g., objects, arrays).
6. Control Flow :
Java Application Development Internship
- Java supports conditional statements (if-else, switch) and looping constructs (for, while,
do-while) for controlling the flow of a program.
7. Methods :
- Methods are functions in Java that perform specific tasks. They can accept parameters and
return values. The `main` method is the entry point for a Java application.
9. Inheritance :
- Java allows you to create new classes by inheriting properties and behaviors from existing
classes. This promotes code reusability.
10. Polymorphism :
- Polymorphism enables objects of different classes to be treated as objects of a common
superclass. This is achieved through method overriding and interfaces.
11. Encapsulation :
- Encapsulation is the concept of hiding an object's internal state and exposing it through
methods. Access modifiers like public, private, and protected are used to control access to
class members.
12. Abstraction :
- Abstraction allows you to define the essential features of an object while hiding the
implementation details. Abstract classes and methods are used to achieve this.
- Java includes a rich collections framework that provides classes and interfaces for
working with collections of objects, such as lists, sets, and maps.
15. Multithreading :
- Java supports multithreading, allowing multiple threads to run concurrently. This is
essential for building responsive and scalable applications.
Core Java serves as the foundation for more advanced Java technologies and frameworks.
Developers typically start with core Java to gain a strong understanding of the language and
then move on to specific areas like web development, enterprise development, or mobile app
development using Java-based technologies and frameworks.
Java Application Development Internship
HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) are essential
technologies for web development. They work together to create the structure and visual
presentation of web pages. Here's an overview of HTML and CSS:
HTML is the standard markup language for creating web pages. It defines the structure and
content of a web page using a set of elements and tags.
2. Document Structure :
- An HTML document is structured as a tree, with the `<html>` element at the root. It
includes the `<head>` section for metadata (title, links to stylesheets or scripts) and the
`<body>` section for the visible content of the web page.
3. Attributes :
- HTML elements often have attributes (e.g., `href`, `src`, `class`) that provide additional
information about the element or modify its behavior.
4. Hyperlinks :
- HTML allows you to create hyperlinks using the `<a>` element, enabling users to
navigate between web pages.
5. Forms :
- HTML provides form elements (e.g., `<form>`, `<input>`, `<button>`) for collecting user
input and sending data to a server.
Java Application Development Internship
CSS is a stylesheet language used for describing the presentation and layout of web pages. It
separates the content (HTML) from the visual design.
5. Box Model :
- Elements in CSS are treated as boxes with content, padding, borders, and margins.
Understanding the box model is essential for layout design.
7. Media Queries :
Java Application Development Internship
- Media queries in CSS allow you to apply different styles based on the characteristics of
the user's device, such as screen width and orientation.
9. CSS Frameworks :
- Developers often use CSS frameworks like Bootstrap or Foundation to accelerate web
development by providing pre-designed components and styles.
HTML and CSS are the foundational technologies for web development. They are often used
in combination with JavaScript, a programming language that adds interactivity and dynamic
behavior to web pages. Together, HTML, CSS, and JavaScript form the core building blocks
of the World Wide Web, allowing developers to create engaging and interactive web
experiences.
Java Application Development Internship
JSP (Java Server Pages) is a technology used for building dynamic web applications in Java.
JSP allows developers to embed Java code within HTML to create web pages that can
generate dynamic content. It's often used in conjunction with servlets to build Java-based web
applications. Here are some key points about JSP:
1. Dynamic Content : JSP enables the creation of web pages that can generate dynamic
content by embedding Java code within HTML templates.
2. Servlet-Based Technology : Under the hood, JSP is converted into servlets before
execution. It is part of the Java EE (Enterprise Edition) platform and is often used alongside
servlets to build web applications.
4. Java Code Integration : Java code can be embedded within JSP pages using scripting
elements. This allows developers to execute Java logic and access Java objects, making JSP a
powerful tool for server-side processing.
6. Standard Actions :
- JSP includes standard actions for common tasks, such as conditionals (`<c:if>`), looping
(`<c:forEach>`), and working with JavaBeans (`<jsp:useBean>`).
- These standard actions can be used to create more maintainable and readable JSP code.
Java Application Development Internship
8. Tag Libraries :
- JSP supports the use of custom tag libraries, such as JSTL (JavaServer Pages Standard
Tag Library) and Struts tags. These libraries provide additional tags and functionality to
simplify JSP development.
9. Servlet API Access : JSP pages have access to the Servlet API, allowing them to interact
with HTTP requests and responses, handle form submissions, and manage session data.
10. Deployment : JSP pages are typically compiled into servlets and are deployed on a web
server or application server. The compiled servlets are executed when clients request JSP
pages.
11. IDE Support : Integrated Development Environments (IDEs) like Eclipse, IntelliJ
IDEA, and NetBeans provide tools and features for JSP development, making it easier for
developers to work with JSP files.
JSP is commonly used for developing web applications in Java, and it is a versatile
technology for creating web pages with dynamic content. It is particularly useful for building
web applications with a Java backend, allowing developers to integrate business logic and
data with the presentation layer efficiently. However, in modern web development, there is a
trend toward using more lightweight and flexible front-end technologies like JavaScript
frameworks (e.g., React, Angular, Vue.js) in conjunction with RESTful APIs to create
dynamic web applications.
Java Application Development Internship
Java Servlets:
Java Servlets are server-side components used to extend the capabilities of web servers. They
allow developers to create dynamic and interactive web applications by handling requests,
processing data, and generating responses in Java. Here are some key points about Java
Servlets:
1. Server-Side Processing : Servlets run on the server and handle client requests, such as
HTTP requests, by processing data and generating dynamic responses.
2. Java-Based : Servlets are written in the Java programming language and are part of the
Java EE (Enterprise Edition) platform, which is now known as Jakarta EE.
4. Extending HttpServlet : Most servlets extend the `HttpServlet` class, which provides
methods for handling HTTP-specific requests, such as `doGet()`, `doPost()`, and `doPut()`.
These methods allow developers to handle different types of HTTP requests.
5. Handling Requests and Responses : Servlets can access request parameters, headers, and
data, and they can generate HTML, XML, or other responses to be sent back to the client.
6. URL Mapping : Servlets are mapped to specific URLs, and when a client makes a
request to that URL, the servlet is invoked to process the request.
7. Session Management : Servlets can manage user sessions, allowing you to store and
retrieve session-specific data, such as user preferences or shopping cart contents.
9. Use of JavaBeans : Servlets often interact with JavaBeans (Java objects) to encapsulate
and manage data and business logic. JavaBeans are often used to separate business logic from
presentation logic.
10. Integration with JSP : Servlets can work in conjunction with JSP (JavaServer Pages) to
create web applications. Servlets can handle business logic, while JSP pages handle the
presentation layer.
11. Thread Safety : Developers must ensure that servlets are thread-safe, as multiple clients
may access a servlet simultaneously. This is typically achieved by synchronizing critical
sections of the code.
12. Deployment : Servlets are typically packaged in web applications (WAR files) and
deployed on web servers or application servers, such as Apache Tomcat, WildFly, or Jetty.
13. IDE Support : Integrated Development Environments (IDEs) like Eclipse, IntelliJ
IDEA, and NetBeans provide tools and features for servlet development, making it easier for
developers to create and manage servlets.
Servlets are widely used in Java web development and are essential for building dynamic and
interactive web applications. They provide a server-side solution for handling HTTP requests
and generating dynamic content, making them a key component of many web applications
and APIs. In modern web development, servlets are often used in conjunction with other
technologies and frameworks, such as JSP, JavaBeans, and RESTful web services, to build
robust and scalable web applications.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
if (connection != null) {
System.out.println("Connected to the database!");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
// Process data as needed
}
```
String insertSQL = "INSERT INTO your_table_name (name, age) VALUES ('John', 30)";
int rowsAffected = statement.executeUpdate(insertSQL);
if (rowsAffected > 0) {
System.out.println("Insert successful.");
}
finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
That's a basic overview of how to use JDBC with MySQL. You can build upon these
concepts to create more complex database interactions in your Java applications. Remember
Java Application Development Internship
to handle exceptions, close resources properly, and ensure secure and efficient database
operations in your applications.
CHAPTER 3
TASK PERFORMED
Java Application Development Internship
Example:
Introduction
The main objective of my internship work was to integrate SMTP setting for a gmail account.
The e-mail address here will be displayed as sender in the out-going e-mail message. We
need to put this file under the application’s directory. The application needs JavaMail API to
work and we need to put the javax.mail.jar file under project’s classpath.
ConfigUtility.java: implements two functions for reading and writing SMTP settings
from/to thesmtp.properties file as described above.
SwingEmailSender.java: is the main entry of the application, it builds the main user
interface that displays e-mail sending form and connects all the above pieces together.
To allow the user to add a file as attachment, this class uses the JFilePicker class
which is introduced in this article: File picker component in Swing.
CHAPTER 4
REFLECTION NOTES
Java Application Development Internship
(Here’s what past students had to say about the internship experience...)
"I thoroughly enjoyed my internship this summer and now have very valuable experience
under my belt. I know this will help when looking for jobs and needing references. I was
dreading it in the beginning, but now I am so happy it was required. As much as the
curriculum changes, I hope that class remains constant."
"We all know that practical experience is the best, and internships give students that hands-on
experience they need. I feel that quality internships are essential to develop key skills that
you can't get in a classroom. Skills such as multitasking, communicating, learning to deal
with diversity, and dealing with deadlines are different when you are working for someone
else, not yourself like you do in college. Internships are also a great way to network with
people in the industry. My boss and co-workers were great about giving me contacts and
referring me to open positions in the industry."
"I learned that customer service is hard. You can not please everyone. There are people in
this world that are simply difficult. I have learned that stressing over little things will not get
me anywhere. I have learned to work well as a team and that without my counterparts the
work would not get done. Another aspect that I learned throughout my internship is to never
be afraid to ask lots of questions. By asking questions I got answers."
"I learned more than I ever expected. I felt in the beginning that I would really have a head
start being that I am a senior and have taken all my classes already but I realized that I don’t
think any amount of classes will ever prepare you for all the world has to offer. Don’t get me
wrong, I feel that Auburn did a wonderful job teaching me but I feel that it is most valuable if
combined with first hand work . I feel that during my time interning my most challenging
part of my work was having to share my tasks and coordinate my work with others. I have
always been kind of a perfectionist and liked to have things done my way so working with
others and sharing duties was a slight change I must say. It took me a couple of weeks to
really feel comfortable allowing someone else to share my work but eventually I learned it
was ok and that two heads were better than one."
Java Application Development Internship
Week 1 Activities
Domain Training
Java Application Development Internship
Week 2 Activities
Working with HTML, CSS
Working with Java Server Pages (JSP)
Task on Designing Web Pages Using HTML CSS
Task on Java Server Pages
Weekly Assignment Task
Week 3 Activities
Training on Java Servlets, JDBC with MySQL Database
Working with Web Templates
Project Analysis & Design
Project Based Activities with team
Week 4 Activities
Project Based Activities with team
CHAPTER 5
CHAPTER 6
CONCLUSION
The main objective of my internship work was to integrate SMTP setting for a gmail account
for one of the internal application at Infidata Technologies, The project email integration
module contains all the basic operation with attachement of files, subject line and email body
and I have tested this email integration module with the internal application at Infidata
Technologies
Java Application Development Internship
REFERENCES
BOOKS:
Charles Hampfed (2000) ‘Instant Java Server Pages’ University of Toronto
Herbert Schildt (2000) ‘Java Complete Reference’ Tata McGraw Hill
John Zukowski (2000) ‘Mastering Java2’ BPB Publications
Jamie Jaworsky ‘J2EE Bible’ Techmedia
Ian Somerville ‘Software engineering’ and Rajeev mall ‘Software engineering
Elmasri Navathe ‘Fundamentals of database systems’
ONLINE REFERENCE:
www.java.sun.com
www.w3schools.com