0% found this document useful (0 votes)
117 views

Java Application Development - Internship Report - 2023!24!1

Uploaded by

Amit Patil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views

Java Application Development - Internship Report - 2023!24!1

Uploaded by

Amit Patil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 48

VISVESVARAYA TECHNOLOGICAL

UNIVERSITY BELAGAVI-590018

INTERNSHIP REPORT
ON

“JAVA WEB APPLICATION DEVELOPMENT”

Submitted By
Mohammed Shafi

3GU20CS019

Under the Guidance of

Dr. SHASHIKALA P

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


GOVERNMENT ENGINEERING COLLEGE

YARMARUS CAMP, RAICHUR-584-135


2023-24
GOVERNMENT ENGINEERING COLLEGE
RAICHUR-584135

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CERTIFICATE

This is to certify that MOHAMMED SHAFI (3GU20CS019) of B.E 6th Semester


has successfully completed the Internship Report entitled “JAVA WEB APPLICATION
DEVELOPMENT” for the partial fulfillment of the bachelor degree in COMPUTER
SCIENCE AND ENGINEERING as prescribed by the Visvesvaraya Technological
University, Belagavi, during the year2023-2024.

Signature of the Guide Signature of the Co-ordinator Signature of HOD


Dr. SHASHIKALA P Prof. POORNIMA Dr. SHASHIKALA P

Examiners:

1.

2.
ACKNOWLEDGEMENT
All the thanks for who have given guidance and wisdom and enabled us to complete
this task. We consider it a privilege to express a few words of gratitude in depth and respect
to all those, who guided and inspired for the successful completion of the internship.

I would like to thank Mr. Nagamahesh B S, the charged instructor of the internship
program for his positive and effective advices prior working.

I’m also grateful to all employees of the INFIDATA TECHNOLOGIES PVT,


LTD, BANGALORE. who guided me during the course of Internship. The behavior of all
the department supervisors is kind enough to me because they gave a lot of time to guide
me.

I’m highly thankful to my internship guide Dr. SHASHIKALA P for active


support, Valuable time and advice, whole hearted guidance, sincere co-operation and
painstaking involvement during the study and completion during my entire course.

I’m highly thankful to my internship coordinator Prof. POORNIMA for active


support, Valuable time and advice, whole hearted guidance, sincere co-operation and
painstaking involvement during the study and completion during our entire course.

I’m really grateful to my HOD Dr. SHASHIKALA P for providing me with an


opportunity to undertake this internship in this university and providing me with all the
facility.

My sincere thanks to our beloved principal Dr. SHIVANAND SWAMY,


Government Engineering College, Raichur for his kind co-operation during our entire
course.

I am also thankful to my all our department professors, parents and my friends for
their encouragement, affection and moral support showered on me during my entire course.

MOHAMMED SHAFI

(3GU20CS019)
ABSTRACT
ABOUT COMPANY

Infidata Technologies is a dynamic start-up company. The foundation to Infidata


technologies is built on the key focus area of domain expertise in industry verticals, customer
focus by quickly aligning to client needs and company’s unique delivery model is well
executed through collaborative network of partners.

OPPORTUNITIES OF INTERNSHIP

 An internship can provide a student with paid professional work experience in a safe
and structured environment with help from expert.
 Typically an intern will be assigned a worksite mentor and school based internship
coordinator.
 The worksite mentor will be help train a student and advise him or her on how to
navigate a particular worksite culture and interact with other workers.
 The school internship coordinator helps the mentor and student build a strong
relationship that will help the intern have positive outcome from their internship
experience.
 The internship coordinator can also help the student learn how to manage their
expectations and implement successful work habits.
METHODOLOGY

There were several facilitation techniques used by the trainer which included question
and answer, brainstorming, group discussions, case study discussions and practical
implementation of some of the topics by trainees in online mode. The multitude of
training methodologies was utilized in order to make sure all the participants get the
whole concepts and they practice what they learn, because only listening to the trainers
can be forgotten, but what the trainees do by themselves they will never forget. After
that the recorded sessions also shared through the drive links and the post-tests were
administered and the final course evaluation forms were filled in by the participants ,
the trainer expressed his closing remarks and reiterated the importance of the training
for the trainees in their daily activities and their readiness for applying the learnt
concepts in their assigned tasks. Certificates of completion were distributed among the
participants at the end.

KEY PARTS AND SOLUTIONS IN THE REPORT

Key components and solutions in the report include proficiency in Java, web development
frameworks, database integration, user-friendly web interfaces, and practical experience in a
professional web development environment
INDEX

CHAPTER 1................................................................................................................................................. 1
1.1 Introduction..................................................................................................................... 1
1.2 Team............................................................................................................................... 2
1.3 Services........................................................................................................................... 2
1.3.1 Enterprise Application Services.......................................................................2
1.3.2 Web designing and Development....................................................................2
1.3.3 Mobile Application Development...................................................................3
1.3.4 Internet of Things............................................................................................ 3
1.3.5 Training Services............................................................................................. 4
1.4 Company Products.......................................................................................................... 4
1.5 Our Clients...................................................................................................................... 4
CHAPTER 2................................................................................................................................................. 7
2.1 Introduction..................................................................................................................... 7
2.2 Tools Used:................................................................................................................... 14
2.3 Technologies Used........................................................................................................ 14
CHAPTER 3............................................................................................................................................... 29
3.1 Introduction................................................................................................................... 29
3.2 Modules Description..................................................................................................... 29
CHAPTER 4............................................................................................................................................... 29
CHAPTER 5.............................................................................................................................................. 33
CHAPTER 6............................................................................................................................................... 33
REFERENCES........................................................................................................................................... 36
LEARNING OBJECTIVES/INTERNSHIP OBJECTIVES
The main objectives of the internship are:

 Proficiency in Java programming


 Mastery of Java web development frameworks and technologies
 Building dynamic and interactive web applications
 Database integration and management for web applications
 Creating secure and user-friendly web interfaces
 Best practices in web development, including responsive design and optimization
 Real-world project experience in a professional web development environment
WEEKLY OVERVIEW OF INTERNSHIP ACTIVITIES

DATE DAY NAME OF THE TOPIC/MODULE COMPLETED

14-08-2023 Monday Domain Training

15-08-2023 Tuesday ------------------


1ST WEEK

16-08-2023 Wednesday Training on Core Java Fundamentals and Assignment work

17-08-2023 Thursday Training on SDLC, Handling Runtime errors using Exception


Handling

18-08-2023 Friday Task on Inheritance & Interfaces ,Case Study Activities

19-08-2023 Saturday Weekly Assignment Task


DATE DAY NAME OF THE TOPIC/MODULE COMPLETED
21-08-2023 Monday Working with HTML, CSS

22-08-2023 Tuesday
2nd WEEK

Working with Java Server Pages (JSP)

23-08-2023 Wednesday Task on Designing Web Pages Using HTML CSS

24-08-2023 Thursday Task on Java Server Pages

25-08-2023 Friday Activities

26-08-2023 Saturday ---------------------


DATE DAY NAME OF THE TOPIC/MODULE COMPLETED
28-08-2023 Monday Training on Java Servlets, JDBC with MySQL Database

29-08-2023 Tuesday Working with Web Templates


3rd WEEK

30-08-2023 Wednesday Project Analysis & Design

31-08-2023 Thursday Project Based Activities with team

01-09-2023 Friday Working with Java Servlets Program

02-09-2023 Saturday Project Work


DATE DAY NAME OF THE TOPIC/MODULE COMPLETED
04-09-2023 Monday Project Based Activities with team

05-09-2023 Tuesday Activities on JDBC with Mysql


4th WEEK

06-09-2023 Wednesday Weekly Assignment Task

07-09-2023 Thursday Assessment Test

08-09-2023 Friday Internship Project Work Presentation

09-09-2023 Saturday Internship Report Preparation


Java Application Development Internship

CHAPTER 1
COMPANY PROFILE

Infidata Technologies is a software development and training company. The foundation to


Infidata technologies is built on the key focus area of domain expertise in industry verticals,
customer focus by quickly aligning to client needs and company’s unique delivery model is
well executed through collaborative network of partners.

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
To become a leading performer and grow as a major IT service provider, in providing
quality Web application, Software Development solutions and corporate training in the
competitive global marketplace.

Mission
To ensure strategic planning with quality products and profitable growth through
customer service, innovation, quality and commitment.

Dept. of CSE, GEC Raichur-584135 1


Java Application Development Internship

1.2 Team

Infidata Technologies is a team of experienced professionals providing a wide range of


complex software and web application development services. The energetic professionals
with vast experience who are working in almost all technologies & spheres of IT.

1.3 Services

Infidata Technologies offer the services in the following areas:

● Enterprise Application Services

● Web designing and Development

● Mobile Application Development

● Internet of Things

● Training Services

1.3.1 Enterprise Application Services

An enterprise application is a software system platform designed to operate in a


corporate environment such as business or government. A software services include online
shopping and payment processing, interactive product catalogues, computerized billing
systems, security, content management, IT service management, content switching modules,
resource planning, business intelligence, human resource management, manufacturing,
application integration, forms automation, sales force automation, enterprise resource
planning and business process management. EA also includes news relevant to IT
compliance, business intelligence, office productivity suites, enterprise resource planning etc.

1.3.2 Web designing and Development

The web development process includes web design, web content development, client-
side/server-side scripting and network security configuration, among other tasks.

Dept. of CSE, GEC Raichur-584135 2


Java Application Development Internship

Web development ranges from creating plain text pages to complex web-based applications,
social network applications and electronic business applications.

The web development hierarchy is as follows:

● Client-side coding

● Server-side coding

● Database technology

1.3.3 Mobile Application Development

A mobile application, most commonly referred to as an app, is a type of application


software designed to run on a mobile device, such as a smartphone or tablet computer.

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.

Dept. of CSE, GEC Raichur-584135 3


Java Application Development Internship

1.3.4 Internet of Things

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.

1.3.5 Training Services

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

1.4 Company Products

● Billing Software

● ERP Solutions

● Retail Store Application

1.5 Our Clients

 Streams Inc
 Vishnu Enterprises
 Deepthi Engineering
 JB Transport India
 BreakDQ
 SJCPU
 Rbits Technologies

Dept. of CSE, GEC Raichur-584135 4


Java Application Development Internship

Dept. of CSE, GEC Raichur-584135 5


Java Application Development Internship

ABOUT THE DEPARTMENT

Infidata Technologies provided an internship in the department of Java application


development division. The Objective is the development of new applications and technology
ensuring that the development of applications with the highest quality.

Java Application Development Department


Java Application Development Process organizes a practical procedure and approach
in application development. Infidata technologies want to streamline their internal
departments and functions, operations, sales and project management, etc. and want to take
advantage of a web based application's flexibility and versatility, by moving away from the
traditional desktop application platform to the web application platform and want to gain
more clients for better service their current clients by offering convenient services and
solutions online to build new web applications to offer innovative services or solutions to
online users and businesses
The structure helps produce best practice coding with consistent logic and coding
standards, and provides other developers the ability to become familiar with the code in a
short time. Builds are based on the module, libraries and tools, allowing programmers to
easily share libraries and implement complex functionalities and features in a fast and
efficient manner. Program actions and logic are separated from the HTML, CSS and design
files for the front end interface and embed java coding. This helps us to be able to edit the
interface and make design changes without help from a programmer.

Java application development Process


The following list of procedures and documents provide a good outline for a Java
Application Lifecycle and Process:

 Roadmap Document: Defining Web Application, Purpose, Goals and Direction


 Researching and Defining Audience Scope and Security Documents
 Creating Functional Specifications or Feature Summary Document
 Team Collaboration and Project Management Document

Dept. of CSE, GEC Raichur-584135 6


Java Application Development Internship

 Technology Selection, Technical Specifications, Illustrative Diagram of Java Application


Architecture and Structure, Development Methodology, Versions Control, Backups,
Upgrades, Expansion and Growth Planning Document, Server Hardware / Software
Selection
 Third Party Vendors Analysis and Selection (Merchant Account and Payment Gateway,
SSL Certificate, Managed Server / Colocated Server Provider, Fulfillment Centers,
Website Visitor Analytics Software, Third Party Checkout Systems, etc.)
 Application Visual Guide, Design Layout, Interface Design, Wire Framing
 Database Structure Design and Web Application Development using Java
 Testing: Quality Assurance, Multiple Browser Compatibility, Security, Performance -
Load and Stress Testing, Usability
 Maintenance

Dept. of CSE, GEC Raichur-584135 7


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.

Java is an object oriented programming language. Java is a high-level, third generation


language like C, FORTRAN, Small talk, Pearl and many others. You can use java to write
computer applications that crunch numbers, process words, play games, store data or do any
of the thousands of other things computer software can do.

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.

 It is simple and object oriented


 It helps to create user friendly interfaces.
 It is very dynamic.
 It supports multithreading.
 It is platform independent
 It is highly secure and robust.
 It supports internet programming
Java is a programming language originally developed by Sun Microsystems and
released in 1995 as a core component of Sun's Java platform. The language derives much of
its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java
applications are typically compiled to byte code which can run on any Java virtual machine
(JVM) regardless of computer architecture.

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

Dept. of CSE, GEC Raichur-584135 8


Java Application Development Internship

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:

1. It should use the object-oriented programming methodology.


2. It should allow the same program to be executed on multiple operating systems.
3. It should contain built-in support for using computer networks.
4. It should be designed to execute code from remote sources securely.
5. It should be easy to use by selecting what were considered the good parts of other
object-oriented languages.

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.

Different "editions" of the platform are available, including:

 Java ME (Micro Edition): Specifies several different sets of libraries (known as


profiles) for devices which are sufficiently limited that supplying the full set of Java
libraries would take up unacceptably large amounts of storage.
 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

Dept. of CSE, GEC Raichur-584135 9


Java Application Development Internship

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.

Dept. of CSE, GEC Raichur-584135 10


Java Application Development Internship

Java Virtual Machine

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.

Dept. of CSE, GEC Raichur-584135 11


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

Dept. of CSE, GEC Raichur-584135 12


Java Application Development Internship

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.

Automatic memory management

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.

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

Dept. of CSE, GEC Raichur-584135 13


Java Application Development Internship

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 Runtime Environment

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

Dept. of CSE, GEC Raichur-584135 14


Java Application Development Internship

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.

2.2 Tools Used:

List of tools used during internship

 Eclipse IDE for Web Enterprise


 WAMP/XAMPP Server

2.3 Technologies Used

 Core Java

 HTML, CSS
 Java Server Pages(JSP)
 Java Servlets
 JDBC with Mysql

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:

1. Object-Oriented Programming (OOP):


- Java is a pure object-oriented programming language, which means that everything in
Java is an object. OOP principles, such as classes, objects, inheritance, encapsulation, and
polymorphism, are fundamental to Java.

Dept. of CSE, GEC Raichur-584135 15


Java Application Development Internship

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.

3. Syntax and Structure :


- Java has a C-like syntax and enforces a specific code structure, including the use of
classes, methods, and packages.

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

5. Variables and Constants :


- You can declare variables and constants in Java. Variables store data that can be modified,
while constants store values that cannot be changed.

6. Control Flow :
- 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.

8. Classes and Objects :


- Java programs are organized into classes, which serve as blueprints for creating objects.
Objects are instances of classes.

9. Inheritance :
- Java allows you to create new classes by inheriting properties and behaviors from existing
classes. This promotes code reusability.

Dept. of CSE, GEC Raichur-584135 16


Java Application Development Internship

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.

13. Exception Handling :


- Java provides mechanisms for handling exceptions that may occur during program
execution. This helps in writing robust and reliable code.

14. Collections Framework :


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

16. File I/O :


- Java offers libraries for reading from and writing to files, making it possible to work with
external data.

17. Packages and Modules :


- Java code is organized into packages to facilitate code organization and reuse. Java 9 and
later versions also introduced modules for improved modularity.

Dept. of CSE, GEC Raichur-584135 17


Java Application Development Internship

18. Java Standard Library :


- Java comes with a vast standard library that includes classes and methods for common
tasks like networking, database access, and GUI development.

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.

Dept. of CSE, GEC Raichur-584135 18


Java Application Development Internship

HTML and CSS

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.

1. Elements and Tags :


- HTML uses a variety of elements (e.g., `<p>`, `<h1>`, `<a>`) and tags (e.g., `<tagname>`)
to define different types of content, such as headings, paragraphs, links, images, and lists.

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.

Dept. of CSE, GEC Raichur-584135 19


Java Application Development Internship

CSS (Cascading Style Sheets):

CSS is a stylesheet language used for describing the presentation and layout of web pages. It
separates the content (HTML) from the visual design.

1. Selectors and Properties :


- CSS uses selectors to target HTML elements and apply styling rules. Properties (e.g.,
`color`, `font-size`, `margin`) specify how an element should be styled.

2. External and Internal Styles :


- CSS can be applied externally via linked stylesheets or internally within an HTML
document using the `<style>` element.

3. Cascading Style Sheets :


- CSS rules can cascade, which means that styles defined in different places (e.g., external
stylesheet, internal style block, inline styles) can interact to determine the final appearance of
an element.

4. Layout and Positioning :


- CSS is crucial for controlling the layout and positioning of elements on a web page. It
includes techniques for creating responsive designs and adapting to different screen sizes.

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.

6. Flexbox and Grid Layout :


- CSS offers advanced layout tools like Flexbox and CSS Grid, which simplify the design
of complex layouts.

7. Media Queries :
- 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.

Dept. of CSE, GEC Raichur-584135 20


Java Application Development Internship

8. Transitions and Animations :


- CSS can be used to create smooth transitions and animations, enhancing the user
experience.

9. CSS Frameworks :
- Developers often use CSS frameworks like Bootstrap or Foundation to accelerate web
development by providing pre-designed components and styles.

10. Responsive Web Design :


- CSS plays a critical role in responsive web design, ensuring that web pages adapt to
various devices and screen sizes.

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.

Dept. of CSE, GEC Raichur-584135 21


Java Application Development Internship

Java Server Pages (JSP):

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.

3. Tags and Scripting Elements :


- JSP provides custom tags for common tasks, such as displaying data, conditionals, and
looping. These custom tags are often used to simplify the page's structure and logic.
- JSP also allows the use of scripting elements, such as `<% %>` for scriptlet code, `<%=
%>` for expression language, and `<%! %>` for declarations.

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.

5. Separation of Concerns : JSP encourages the separation of presentation logic (HTML)


from business logic (Java code). This separation makes it easier to maintain and scale web
applications.

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.

Dept. of CSE, GEC Raichur-584135 22


Java Application Development Internship

7. Use of Expression Language (EL) :


- JSP incorporates the Expression Language (EL) for accessing and manipulating data
stored in objects, such as JavaBeans. EL simplifies the retrieval of values and iteration over
collections.

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.

Dept. of CSE, GEC Raichur-584135 23


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.

3. Lifecycle : Servlets have a well-defined lifecycle, including methods like `init()`,


`service()`, and `destroy()`. These methods allow developers to set up resources, handle client
requests, and clean up resources when the servlet is no longer needed.

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.

8. Stateful or Stateless : Servlets can be designed to be stateful or stateless, depending on


the needs of the application. Stateful servlets maintain information about the client's session,
while stateless servlets do not.

Dept. of CSE, GEC Raichur-584135 24


Java Application Development Internship

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.

Dept. of CSE, GEC Raichur-584135 25


Java Application Development Internship

JDBC with MySQL:

JDBC (Java Database Connectivity) is a Java-based API (Application Programming


Interface) that allows Java applications to interact with relational databases, including
MySQL. Using JDBC, you can perform various database operations such as connecting to a
database, executing SQL queries, and retrieving or modifying data. Here's a step-by-step
guide on how to use JDBC with MySQL:

Step 1: Set Up Your Development Environment


- Ensure you have Java installed on your system.
- Download and install MySQL or use an existing MySQL database server.

Step 2: Download MySQL Connector/J


- Download the MySQL Connector/J JDBC driver from the official MySQL website
(https://dev.mysql.com/downloads/connector/j/).
- Add the JAR file to your Java project's classpath.

Step 3: Import Required Packages


- In your Java code, import the necessary JDBC packages:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

Step 4: Establish a Database Connection


- Use the following code to establish a connection to your MySQL database:

Connection connection = null;


try {
String jdbcUrl = "jdbc:mysql://localhost:3306/your_database_name";
String username = "your_username";
String password = "your_password";

Dept. of CSE, GEC Raichur-584135 26


Java Application Development Internship

connection = DriverManager.getConnection(jdbcUrl, username, password);

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

Step 5: Create and Execute SQL Queries


- You can create SQL queries using `Statement` or `PreparedStatement`. Here's an example
using `Statement`:

Statement statement = connection.createStatement();

String sql = "SELECT * FROM your_table_name";


ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
// Process data as needed
}
```

Dept. of CSE, GEC Raichur-584135 27


Java Application Development Internship

Step 6: Perform Updates


- To execute insert, update, or delete statements, you can use `executeUpdate`:

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.");
}

Step 7: Handle Exceptions and Close Resources


- Always handle exceptions appropriately and close database resources in a `finally` block to
ensure proper resource management.

finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

Step 8: Error Handling and Exception Management


- Implement robust error handling and exception management in your application to handle
database-related errors.

Dept. of CSE, GEC Raichur-584135 28


Java Application Development Internship

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
to handle exceptions, close resources properly, and ensure secure and efficient database
operations in your applications.

Dept. of CSE, GEC Raichur-584135 29


Java Application Development Internship

CHAPTER 3
TASK PERFORMED
Project Tile: “Resell and Buy Things’’

3.1 Introduction

In a fast-paced digital age, the online marketplace has become a central hub for buying
and selling a wide range of products. The project titled "Resell and Buy Things" aims to
create a dynamic and user-friendly platform that empowers users to seamlessly engage in
the resale and purchase of electronic appliances. This project leverages a multi-faceted
approach, combining web development technologies, database management, and user
interaction to deliver a robust and intuitive e-commerce experience.

The primary objective of this project is to provide a feature-rich platform that allows
users to both sell their electronic appliances and purchase items from other sellers. To
achieve this, the project is divided into five key modules, each with a specific focus and
set of functionalities.

3.2 Modules Description


1. User Authentication and Management:

 Purpose: This module was responsible for handling user authentication and
account management. It ensured secure user access to the platform and
allowed users to manage their profiles.

 Functionality:

 User Registration: Users could create accounts by providing their


details, including name, email, and password.

 User Login: Registered users could log in securely using their


credentials.

 Password Reset: A mechanism was implemented to allow users to reset


their passwords in case of forgotten credentials.

Dept. of CSE, GEC Raichur-584135 30


Java Application Development Internship

 Profile Management: Users could update their profiles, including


contact information and profile pictures.

2. Product Listing and Management:

 Purpose: This module facilitated the listing and management of electronic


appliances for sale by users. It allowed sellers to provide detailed information
about their products.

 Functionality:

 Product Listing: Sellers could create listings for electronic appliances,


including product names, descriptions, prices, images, and contact
information.

 Image Upload: Sellers could upload images of the products to enhance


product listings.

3. Product Display and Shopping Cart:

 Purpose: This module ensured a user-friendly and interactive shopping


experience. It allowed buyers to browse products, view details, and make
selections for purchase.

 Functionality:

 Product Display: Users could view a list of electronic appliances with


product details, descriptions, images, and prices.

 Product Details: Buyers could click on product listings to view detailed


information about each item.

 Shopping Cart: Users could add products to a shopping cart, review


their selections, and proceed to checkout.

4. Order Processing:

 Purpose: The Order Processing module managed the processing of user


orders, including validation, order total calculation, and inventory updates.

 Functionality:

Dept. of CSE, GEC Raichur-584135 31


Java Application Development Internship

 Order Validation: The module ensured that orders were accurate and
complete before processing.

 Order Total Calculation: It calculated the total cost of the items in the
shopping cart.

 Inventory Updates: The module updated product inventory to reflect


the items purchased by users.

5. Order Confirmation via Email:

 Purpose: This module was responsible for sending order confirmation and
updates to users via email. It served as a communication channel to keep users
informed about their orders.

 Functionality:

 Order Confirmation: Users received email notifications confirming


their orders, including order details and expected delivery information.

 Order Updates: Users were notified via email about any updates or
changes to their orders, such as order shipment status.

These modules collectively formed the core functionalities of the "Online Reselling
Electronics Application." Each module played a crucial role in creating a seamless and secure
e-commerce platform, connecting buyers and sellers of electronic appliances while ensuring
user authentication, effective product management, and a smooth shopping experience.

Dept. of CSE, GEC Raichur-584135 32


Java Application Development Internship

CHAPTER 4
REFLECTION NOTES
I had a great experience during my internship, and I gained valuable experience that will be
helpful when I look for jobs and references. At first, I was nervous about it, but now I'm
happy it was required. Despite changes in the curriculum, I hope internships like this one
remain a constant part of the program.

Weall know that practical experience is the best, and internships provide hands-on experience
that you can't get in a classroom. It's essential for developing skills like multitasking,
communication, handling diversity, and meeting deadlines. These skills are different when
you're working for someone else, not just studying in college. Internships are also a great way
to build a network in the industry. My boss and co-workers were helpful in connecting me
with industry contacts and job opportunities.

I learned that customer service can be tough, and you can't make everyone happy. Some
people are just difficult to deal with. I also realized that stressing over small things doesn't get
you anywhere. I learned the value of teamwork and how important my colleagues are in
getting the work done. One important lesson was not to be afraid to ask questions, as it's how
I got the answers I needed.

I learned more than I expected. Initially, I thought I had an advantage being a senior and
having completed all my classes, but I realized that no amount of classes can fully prepare
you for everything in the real world. Don't get me wrong, Auburn did an excellent job
teaching me, but combining that with hands-on work is most valuable. The most challenging
part of my internship was having to share tasks and coordinate work with others. I'm a bit of a
perfectionist and used to doing things my way, so working with others and sharing
responsibilities was an adjustment. It took me a while to feel comfortable with it, but I
learned that collaboration is a good thing, and two heads are better than one.

Dept. of CSE, GEC Raichur-584135 33


Java Application Development Internship

CHAPTER 5
RESULTS AND INTERNSHIP OUTCOMES

Fig 5.1-Signup and Login

Fig 5.2- Add product page

Dept. of CSE, GEC Raichur-584135 34


Java Application Development Internship

Fig 5.2- Product Details page

Fig 5.2- Order placing page

Dept. of CSE, GEC Raichur-584135 35


Java Application Development Internship

CHAPTER 6
CONCLUSION

In working on the "Resell and Buy Things" Java web application project, I've learned a lot
about creating an online platform for buying and selling. It's been a hands-on experience that
has taught me more than just what I've learned in class.

The different parts of the project, like setting up user accounts and managing products, have
given me a variety of skills. This project showed me how practical experience is different
from classroom learning. I faced real-world challenges, like dealing with different users and
working as part of a team, which have had a big impact on my professional growth.

The "Resell and Buy Things" project highlights the importance of teamwork, adaptability,
and striving for excellence. It has reinforced the idea that combining what I've learned in my
studies with real-world practice is the best way to prepare for a changing tech world. As I
finish this project, I'm excited to use what I've learned in future work and contribute to the
ever-evolving field of e-commerce and web development.

Dept. of CSE, GEC Raichur-584135 36


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

Dept. of CSE, GEC Raichur-584135 37

You might also like