Sie sind auf Seite 1von 75

Green Bank

Online Banking Solution

Developed by:
Ankit Mishra
Tecnia Institute of Advanced Studies
MCA Vth Semester

Tools &Technologies used


Java, JDBC
JSP
Servlets
Eclipse IDE
Oracle 8i

TECNIA INSTITUTE OF ADVANCED STUDIES


(Approved by AICTE, Ministry of HRD, Govt. of India)
(Affiliated to GGS Indraprastha University, Delhi)

1|Page

Acknowledgement
Any project combines efforts, ideas, suggestions, reviews & hard work.
I would sincerely like to thank Mr. Vijay Singhal (Program Coordinator - MCA) for
allowing me to carry out the project work, acting as the guiding spirit behind the
compilat ion o f this project report and for putting tremendous efforts from his side to
assist me as much as possible. Wit hout his support and guidance this pro ject report could
not have been transformed into realit y.

TECNIA INSTITUTE OF ADVANCED STUDIES


(Approved by AICTE, Ministry of HRD, Govt. of India)
(Affiliated to GGS Indraprastha University, Delhi)

2|Page

CERTIFICATE
This is to certify that this project entitled Green Bank Online Banking
Solution submitted in partial fulfillment of the degree of MASTER OF
COMPUTER APPLICATION to the Tecnia Institute of Advanced Studies,
done by Mr. Ankit Mishra, Enroll No. 0671704406 is an is an authentic
work carried out by him at Tecnia Institute of Advanced Studies under
my guidance. The matter embodied in this project work has not been
submitted earlier for award of any degree or diploma to the best of my
knowledge and belief.

( Ankit Mishra )
Enrollment No. : 0671704406

( VIJAY SINGHAL )
MCA-Programme Coordinator

Course : MCA

Place: New Delhi


Date:

3|Page

SELF CERTIFICATE

This is to certify that the dissertation/project report entitled Green Bank


Online Banking Solution done by me is an authentic work carried out for
the partial fulfilment of the requirements for the award of the degree of
MASTER OF COMPUTER APPLICATION (MCA) under the guidance of Mr.
Vijay Singhal. The matter embodied in this project work has not been
submitted earlier for award of any degree or diploma to the best of my
knowledge and belief.

Ankit Mishra
Enroll. No 067104406
MCA Vth Semester

Place: New Delhi


Date:

4|Page

Table Of Contents
Synopsis
Part I INTRODUCTION
1.

Proposed System

2.

Definition of Problem

3.

Theoretical Background

10

4.

Objective and Scope of the Project

11

Part II System Analysis


5.
6.

Requirement Analysis
Feasibility study

7.

Hardware / Software specification

13
14

Part III System Requirements


1 17

Part IV System Design


8.

Database design

18

9.
10.

E-R diagram
Dataflow Diagram

20
21

11.

Use Case Diagram

23

12.

Activity Diagrams

24

13.

Deployment Environment Diagram

26

14.

Process Description for customer

27

Part V Methodology Adopted


15.

Java Server Pages

28

16.

Servlets

34

17.

MVC Architecture Model2

36

18.

Apache Tomcat

37

5|Page

Part VI Software Development


19.

Input/Output Screens with Sample Data

39

20.

Sample codes

55

Part VII System Testing


21.

Testing Methodology

70

Part VIII Conclusion


22.

Limitations

23.

Future Enhancements

24.

Bibliography

6|Page

Synopsis - Mini Project


Green Bank - Online Banking Solution
Created by: Ankit Mishra
Course: MCA- Vth Semester
Roll No. 0671704406

Introduction
The project is intended to provide online banking facilities such as checking accounts,
paying mobile bills, getting pay-in slips and making transfers over World Wide Web.
Customer is supposed to provide login id and password to access his bank account online.
With proper authorization the customer will be allowed to perform various banking
activities. In addition to conventional banking services the customer is also facilitated
with service like recharging mobile accounts for Airtel customers
There are two major ends in this project the customer end and the administrator end.

Customer end is the end where customers make requests to view their account
information update information and do transactions or pay certain bills.
Administrator end is responsible for validating the user i.e. not allowing any
unauthorized person to access the account. In event of a customer forgetting the
Login password, provision has been made to provide password through a secure
passage. Administrator is responsible for adding customers without affecting
existing customers.

Objective and Scope of the project


The main purpose of Online Banking Solution is to provide customers with an ability to
make transactions online over a very user friendly interface.
Facilities provided

View Account: Customer is authorized to check his account.


Transfer Money: Customer can transfer money online over a secure passage to
another account.
Credit Card Facility: Customer can login using the credit card number. A
customer can also apply for a credit card.
Application Forms: Different forms such as new cheque book request, change of
address etc can be downloaded.
7|Page

Customer Help: A document enabling customers to understand Online Banking.


Bill Payment: Bills pertaining electricity, mobile can be paid online.
Mobile Recharge: In collaboration with Airtel, users can get their account
recharged.
Generate Account Statements

Architecture of Online Banking (Green Bank)


The Online Banking Application is based on 3-tiered model. The Enterprise
architecture for
Online Banking Green Bank).

Figure1: Architecture of Online Banking (Green Bank)


The 3-tiered architecture shown above has the following major components:

Client: There will be two clients for the application. One will be a web-based
user-friendly client called bank customers. The other will be for administration
purposes.
Application Server: It takes care of the server script, takes care of JDBC-ODBC
driver, and checks for the ODBC connectivity for mapping to the database in
order to fulfill client and administrators request.
Database: Database Servers will stores customers and bank data.
8|Page

Software Development Methodology


Analysis
The table below lists the functionalities to be included in the Online Banking Application,
as well as certain features that will not be supported. This list is a tentative, since it may
be discovered during development that additional features are required or some existing
features may prove to be unworkable or impractical due to time limitations. The
application will be written Java Server Pages (JSP), as it is easier to write and maintain
pages. Table 1 represents the features supported by Online Banking

Feature

Support

Support 3-tier architecture(Client, Server,


Database)
Easy means of navigation through pages
containing proper session tracking.
Easy means of navigation
Support of application server

yes
yes
Yes
Tomcat

Support JDBC-ODBC connections

yes

Menus created with the help of flash

yes

Database support

Yes(Oracle 8.1.7)

Establish Database Connection

yes

Generation of Use Case and Dataflow


diagrams
Programming language support

yes

Operating system

yes
Windows 98, 2000,Xp,Vista

Table1 Functionalities of Online Banking


9|Page

10 | P a g e

Software and Hardware Requirements

Hardware requirements: P4 (2.4 GHz), 512 mb DDR ram


Operating System: Windows Xp(Professional) SP2
Software Requirements: Eclipse IDE, Apache tomcat 6.0.18, JavaScript, HTML,
JSP and Servlets, Oracle 8.1.7

Limitations

The project can be best viewed on Firefox.


It provides banking facilities to personal banking.
Enterprise Java Beans have not been implemented.
SSL is not implemented.
Loan facilities, credit card login is not being provided.

Conclusion
This project shows, how Online applications like online Banking, can easily be developed
using Enterprises Java Technologies and its distributed architectures \[Page-Centric,
Page-View, and Model 1]. A more efficient approach would be to utilize Model View
Controller 2 architecture, which makes application reusable, robust, and more objectoriented the approach followed in this project.

11 | P a g e

Proposed System
Those that do are sometimes referred to as "brick-to-click" banks, both to
distinguish them from brick-and-mortar banks that have yet to offer online
banking, as well as from online or "virtual" banks that have no physical branches
or tellers whatsoever.
The challenge for the banking industry has been to design this new service
channel in such a way that its customers will readily learn to use and trust it. After
all, banks have spent generations earning our trust; they aren't about to risk that on
a Web site that is frustrating, confusing or less than secure.
The proposed system will show the Online using Servlets and JSP and Oracle8i as
the backend. This project makes use of flash navigation menu bars which makes it
easier to navigate through the site and the project is build around MVC
architecture which makes it more robust system.The vision is simple and
powerful: customers will be able to perform banking functionalities in an easy
manner .

12 | P a g e

Definition of Problem
The purpose of this project is to develop an on-line banking system that provides
customers with the facility to check their accounts and do transactions on-line.
The system will provide all the banks facilities to its customers when their
authentications [user id and password] matches, including viewing account
information, performing fund transfers, giving the customer an option of changing
address, password retrieval, performing transactions, viewing transactions and
locate bank branches. The system allows and should allow customers to view
their personnel accounts and to pay bills online from their account.
The system should assign a unique transaction number to every transaction that a
user makes.. The Administrator will administer both normal bank account. The
administrator have the ability to perform various operations like creating a normal
bank account for the customer and performing functions like transfers,
withdrawals and deposits when the customers want teller transactions. The
administrator also has the privilege to close the customers account on the request
of the bank customer. The customer should be able to access his/her account
from anywhere just by inputting the correct user-id and password.

Advantages of online banking

Convenience: Unlike your corner bank, online banking sites never close;
they're available 24 hours a day, seven days a week, and they're only a mouse
click away.

Ubiquity: If you're out of state or even out of the country when a money
problem arises, you can log on instantly to your online bank and take care of
business, 24/7.

Transaction speed: Online bank sites generally execute and confirm


transactions at or quicker than ATM processing speeds.

Efficiency: You can access and manage all of your bank accounts, including
IRAs, CDs, even securities, from one secure site.

Effectiveness: Many online banking sites now offer sophisticated tools,


including account aggregation, stock quotes, rate alerts and portfolio managing
programs to help you manage all of your assets more effectively. Most are also
compatible with money managing programs such as Quicken and Microsoft
Money.
13 | P a g e

Disadvantages of online banking

Start-up may take time: In order to register for your bank's online program, you
will probably have to provide ID and sign a form at a bank branch. If you and
your spouse wish to view and manage your assets together online, one of you
may have to sign a durable power of attorney before the bank will display all
of your holdings together.

Learning curve: Banking sites can be difficult to navigate at first. Plan to invest
some time and/or read the tutorials in order to become comfortable in your
virtual lobby.

Bank site changes: Even the largest banks periodically upgrade their online
programs, adding new features in unfamiliar places. In some cases, you may
have to re-enter account information.

The trust thing: For many people, the biggest hurdle to online banking is
learning to trust it. Did my transaction go through? Did I push the transfer
button once or twice? Best bet: always print the transaction receipt and keep it
with your bank records until it shows up on your personal site and/or your
bank statement.

14 | P a g e

Theoretical Background
Similar banking applications are available in the market. A considerable amount
of research has been done in past few months on this project. Many banks had
migrated from paper based banking system to electronic online banking. Each
bank had its own, user friendly interface, which helps its customers to interact
with their account at their ease. A wide variety of Online Banking applications are
available in the market which in turn help the bank to function smoothly. All
banks which are using online banking application uses the same basic principle.
Axis Bank
has excellent features, which allows customers to check their accounts and view
their statements. The best thing about this banks system allows us to schedule
payments and do online transactions. The security feature is the best; it gains the
trust of the customer and allows them to do their transitions in an efficient and
secure manner. However, the interface is very complicated for novice users. The
interface for credit card customer is confusing
Canara Bank
One of the finest bank of India , who perform their transactions online. The
security issues are wonderful, and it allows the customer to view their
transactions, pay bills online, ATM/branch locator and provide

15 | P a g e

Project Scope
The Online banking Application project will be divided into 2 modules namely:
1. Bank Account
2. Bank Account Administrator
Module 1
In this module the customer is allowed to logon to the website and can access
his/her account by getting user name and password which will be verified with the
server and the database. Once he/she gets verified then they are allowed to view
their personal account and perform operations such as change of address, paying
bills online, viewing transactions and transferring money into other accounts.
Once the customer finishes the task the update information instantly gets stored
into the database. The customer is then allowed to sign out from his/her account.

Module 2
In this module the administrator is allowed to log on to the website and can access
his/her administrative account by using the user name and password which will
then be verified with the database. Once he/she gets verified the administrative
interface will be displayed, where the administrator can perform operations for
both new customers and existing customers. Administrator will help a new
customer in opening their account by taking complete information from them.
Administrator provides services like withdrawal, deposit, transfer and deleting
customer during the time of closing the account. In this module administrator
provides great customer service to the customers who want to do phone banking
or teller banking. The interface for administrator will be both very user friendly
and efficient. The data gets stored in the database instantly when the administrator
hits the submit button.

16 | P a g e

Facilities provided

View Account: Customer is authorized to check his account.

Transfer Money: Customer can transfer money online over a secure passage to
another account.

Credit Card Facility: Customer can login using the credit card number. A
customer can also apply for a credit card.

Application Forms: Different forms such as new cheque book request, change
of address etc can be downloaded.

Customer Help: A document enabling customers to understand Online


Banking.

Mobile Recharge: In collaboration with Airtel, users can get their account
recharged.

Generate Account Statements

17 | P a g e

Requirements Analysis
The requirements can be defined as A complete understanding of the software
development effort. No matter how well designed or well coded, a poorly
analyzed and specified program will disappoint the user and bring grief to the
developer.
System requirements should set out what the system should do rather than how
this is done. A requirement may be a functional requirement, that is, it describes
a system service or function. Alternatively, it may be a non-functional
requirement. A non-functional requirement is a constraint placed on the system
(for instance, the required response time) or on the development process (such as
the use of a specific language standard).
The Design process involves developing several models of the system at different
levels of abstraction. As a design is decomposed, errors and omissions in earlier
stages are discovered. Design is a creative process. Although methods and
guidelines are helpful, judgment and flair are still required to design a software
system.
Requirements may be either:

Functional, describing the facilities of the system

Non-functional, describing constraints which may impact later development


phases

18 | P a g e

Feasibility Study
Feasibility is the determination of whether or not a project is worth doing. The
process followed in making this determination is known as feasibility. It is very
necessary to evaluate the feasibility of a project. In the development of the present
project, no such limitations were imposed that were not feasible.
All the projects are feasible given unlimited resources and infinite time.
Unfortunately the development of a computer-based system is more likely to be
plagued by a scarcity of resources and difficult delivery date. Therefore it is both
necessary and prudent to evaluate the feasibility of a project. Hence this is the
most important aspect in analysis part of any system. The feasibility study enables
us to know whether it is viable to go for computerization or not.
This is the most important aspect in the analysis part of the system. Designing
phase is generally dependent upon the feasibility study. The feasibility study
enables us to determine whether it is feasible to go for computerization. So
keeping this aspect in view the new computerized system has also undergone
many checks and then only it was decided to develop the system.
There are different modes of feasibility study.

Technical FeasibilityThe technical feasibility is concerned with


specifying the equipments and software that will successfully satisfy the
user requirements. A system is technically feasible if it can be designed
and implemented with the limitations of available resources.
The technical requirement i.e. the hardware and software required by the
new system is of low cost and needing very less maintenance cost. There
is no need to buy anything extra for the system. The projected resources
are enough for the system. So the development of the new system is
technically feasible.
The proposed system is technically feasible as the resources that are
needed for the proposed system are available.

Economic Feasibility
Economic feasibility analysis is most frequently used technique for
evaluating the effectiveness of the proposed system. It is also known as
Cost/Benefit Analysis. The proposed computerized system is
economically feasible, if the benefit in the long run compensates the cost
incurred in the designing and implementation of the system.
19 | P a g e

The cost factor of the system involves the Manpower cost, Hardware cost, and the
Software cost.
Manpower Cost: There is no need to employ any extra person to use this system
as its very user friendly and very easy to learn too.
Hardware Cost: The hardware cost is very less. So this system is economically
regarding hardware cost.
Software Cost: The software needed for the development of the project is nil as
we are using Free and Open Source Software (FOSS) like Java.
The development of the proposed system does not result in too much extra
expenditure. The existing hardware and software will fulfill the requirement of the
proposed system. Thus, the proposed system is economically feasible.
Social Feasibility
Social feasibility is a determination of whether a proposed system will be
acceptable to the people or not. This determination typically examines the
probability of the project being accepted by the group directly affected by the
proposed change in system.
The proposed system helps to reduce the time of the user. So, the proposed system
is accepted by the user. Thus, the proposed system is socially feasible.
Legal Feasibility
Legal feasibility is a determination of whether the proposed system infringes on
any known Acts or pending legislations. We are using Free and Open Source
Software (FOSS) so the proposed system does not infringe on any legal Acts.
Thus, it is legally feasible.
Time Feasibility
Time feasibility determines whether the proposed project can be implemented
fully within the stipulated time frame.
The proposed system was allotted two months time for being implemented. The
time allotted for the proposed system is quite sufficient. Thus, the proposed
system is time feasible.
Thus, the proposed system passes all the feasibility tests.
20 | P a g e

Hardware/Software Specifications
SOFTWARE REQUIREMENTS

Front End Tools: Servlets and JSP.


Back End Tools: Oracle8i
Server: Apache Tomcat Server

HARDWARE REQUIREMENTS

Pentium III 600 MHz and above.


RAM 64 MB and above.

21 | P a g e

Database Design
Customer table
Name
Customer_id (PK)
Cust_first_name
Cust_last_name
DOB
Gender

Null?
NOT NULL

Type
INTEGER
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(2)

Customer Detail table


Name
Customer_id (FK)

Null?
NOT NULL

Type
INTEGER

City

VARCHAR2(20)

State

VARCHAR2(20)

Zip

VARCHAR2(20)

Phone Number

NUMBER(10)

Email id

VARCHAR2(20)

Login table
Name
Customer_id (FK)
Password
Username
Credit Card table
Name
Request Number
Name
Profession
Annual Income
Address
City
Telephone Number
Card type

Null?
NOT NULL

Type
INTEGER
VARCHAR2(30)
VARCHAR2(30)

Null?
NOT NULL

Type
INTEGER
VARCHAR2(30)
VARCHAR2(30)
INTEGER
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(30)
22 | P a g e

Account table
Name
Account Number (PK)
Customer_id (FK)
Min_Balance
Current balance
Recommended by
Nominee
Type_of_account
Date_of_opening
Date_of_access

Null?
NOT NULL

Type
NUMBER(8)
INTEGER
NUMBER(8)
NUMBER(8)
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(20)

Branch locator table


Name
Location
Branch_city
Address

Null?
NOT NULL

Type
VARCAR2(30)
VARCHAR2(20)
VARCHAR2(30)

Transaction(transfer-funds) table
Name
Trans_id
Acc_no
Account to
Amount
Transaction_date
Trans_no
description
Employee table
Name
Employee_id (PK)
Name
Working_from
Age

Null?
NOT NULL

Type
NUMBER(10)
NUMBER(10)
NUMBER(10)
NUMBER(10)
VARCHAR2(20)
INTEGER
VARCHAR2(30)

Null?
NOT NULL

Type
NUMBER(10)
VARCHAR2(20)
VARCHAR2(20)
NUMBER(10)

Null?

Type
INTEGER
INTEGER

Transaction type table


Name
Transaction Number (PK)
Account Number (FK)

23 | P a g e

Entity Relationship Diagram

24 | P a g e

Data Flow Diagrams

Context Level Diagram


dfd Data Model

customer services
customer
Onlie banking
Web Solution

Administrator

Administrator
services

25 | P a g e

Level 1 Diagram

26 | P a g e

Use Case Diagram


uc Use Case Model

Enter Login id and


passw ord
include

v erification

View Account
Summary
Customer

View Mini Statement


include

include

v iew balance

Add New User

Transfer of Funds
include

Update User profile


Administrator
Mobile recharge

Request for
cheque book

DeleteAccount

Request for
forgoton
password

Request for new


credit card

27 | P a g e

Activity Diagram

28 | P a g e

29 | P a g e

Deployment
Diagram

30 | P a g e

31 | P a g e

Comparison between JSP and other technologies


JSP vs. Active Server Pages(ASP)
ASP is a similar technology from Microsoft. The advantages of JSP are Saturday,
March 13 2004 two fold. First, the dynamic parts written in java , not Visual
Basic or other MS-specific language, so its more powerful and easier to use.
Second, it is portable to other Operating systems and non-Microsoft Web servers.
JSP vs. JavaScript
Client-side scripting with JavaScript is certainly handy and useful, but it does
present several problems, including the following: You must count on the
customer's browser to have scripting enabled, which, of course, you can t.

Different customers may use different browsers. And coding client-side


scripts that work on different browsers can be a headache.
Scripting languages used on the client side cannot match the strength and
versatility of Java.
Client-side scripting languages have very limited access to server-side
resources, such as databases. JavaServer pages have access to all serverside resources within the well-defined architecture of J2EE.
You have the usual problems of maintaining software on the client that
caused

Advantages of using JSP over competing technologies are as follows:

o JSP enables a clean separation of business logic from presentation.


o JSP, by using Java as the scripting language, is not limited to a specific
vendor
s
platform.
o JSP, as an integral part of the J2EE architecture, has full access to
server-side resources.
Because JSP pages execute on the server, you need not require the client to use
a particular browser or have a fixed configuration.

JSP vs. Pure Servlets


JSP doesnt give anything that you couldn't in principle do with a servlet. But it is
more convenient to write and modify regular HTML than have million of println
statements.
32 | P a g e

Java Server Pages


While there are numerous technologies for building web applications that serve
dynamic content, the one that has really caught the attention of the development
community is JavaServer Pages (JSP). And not without ample reason either. JSP
not only enjoys cross-platform and cross-Web-server support, but effectively
melds the power of server-side Java technology with the WYSIWYG features of
static HTML pages.
JSP pages typically comprise of:

Static HTML/XML components.

Special JSP tags

Optionally, snippets of code written in the Java programming language called


"scriptlets."
Consequently, you can create and maintain JSP pages by conventional
HTML/XML tools.
It is important to note that the JSP specification is a standard extension defined on
top of the Servlet API. Thus, it leverages all of your experience with servlets.
There are significant differences between JSP and servlet technology. Unlike
servlets, which is a programmatic technology requiring significant developer
expertise, JSP appeals to a much wider audience. It can be used not only by
developers, but also by page designers, who can now play a more direct role in
the development life cycle.
Another advantage of JSP is the inherent separation of presentation from content
facilitated by the technology, due its reliance upon reusable component
technologies like the JavaBeans component architecture and Enterprise JavaBeans
technology.

33 | P a g e

JSP Architecture

JSP
Engine

Web
Server

Server
Extension
Servlet
Engine

Client

Server-Side

JSP Advantages
Separation of static from dynamic content
Write Once Run Anywhere
Dynamic content can be served in a variety of formats
Recommended Web access layer for n-tier architecture.
Completely leverages the Servlet API.
JSP Syntax Basics
JSP syntax is fairly straightforward, and can be classified into directives, scripting
elements, and standard actions.
Directives
JSP directives are messages for the JSP engine. They do not directly produce any
visible output, but tell the engine what to do with the rest of the JSP page. JSP
directives are always enclosed within the <%@ ... %> tag. The two primary
directives are page and include.

Page Directive

34 | P a g e

Typically, the page directive is found at the top of almost all of your JSP pages.
There can be any number of page directives within a JSP page, although the
attribute/value pair must be unique. Unrecognized attributes or values result in a
translation error. For example,
<%@ page import="java.util.*, com.foo.*" buffer="16k" %>
makes available the types declared within the included packages for scripting and
sets the page buffering to 16K.
Include Directive
The include directive lets you separate your content into more manageable
elements, such as those for including a common page header or footer. The page
included can be a static HTML page or more JSP content. For example, the
directive:
<%@ include file="copyright.html" %>
can be used to include the contents of the indicated file at any location within the
JSP page.
Declarations
JSP declarations let you define page-level variables to save information or define
supporting methods that the rest of a JSP page may need. While it is easy to get
led away and have a lot of code within your JSP page, this move will eventually
turn out to be a maintenance nightmare. For that reason, and to improve
reusability, it is best that logic-intensive processing is encapsulated as JavaBean
components.
Declarations are found within the <%! ... %> tag. Always end variable
declarations with a semicolon, as any content must be valid Java statements:
<%! int i=0; %>
You can also declare methods. For example, you can override the initialization
event in the JSP life cycle by declaring:
<%! public void jspInit() {
//some initialization code
}
%>

35 | P a g e

Expressions
With expressions in JSP, the results of evaluating the expression are converted to
a string and directly included within the output page. Typically expressions are
used to display simple values of variables or return values by invoking a bean's
getter methods. JSP expressions begin within <%= ... %> tags and do not include
semicolons:
<%= fooVariable %>
<%= fooBean.getName() %>
Scriptlets
JSP code fragments or scriptlets are embedded within <% ... %> tags. This Java
code is run when the request is serviced by the JSP page. You can have just about
any valid Java code within a scriptlet, and is not limited to one line of source
code. For example, the following displays the string "Hello" within H1, H2, H3,
and H4 tags, combining the use of expressions and scriptlets:
<% for (int i=1; i<=4; i++) { %>
<H<%=i%>>Hello</H<%=i%>>
<% } %>
Object Scopes
Before we look at JSP syntax and semantics, it is important to understand the
scope or visibility of Java objects within JSP pages that are processing a request.
Objects may be created implicitly using JSP directives, explicitly through actions,
or, in rare cases, directly using scripting code. The instantiated objects can be
associated with a scope attribute defining where there is a reference to the object
and when that reference is removed. The following diagram indicates the various
scopes that can be associated with a newly created object:

36 | P a g e

JSP Implicit Objects


As a convenience feature, the JSP container makes available implicit objects that
can be used within scriptlets and expressions, without the page author first having
to create them. These objects act as wrappers around underlying Java classes or
interfaces typically defined within the Servlet API. The nine implicit objects:
1. request: represents the HttpServletRequest triggering the service invocation.
Request scope.
2. response: represents HttpServletResponse to the request. Not used often by
page authors. Page scope.
3. pageContext:
encapsulates
implementation-dependent
features
in
PageContext. Page scope.
4. application: represents the ServletContext obtained from servlet configuration
object. Application scope.
5. out: a JspWriter object that writes into the output stream. Page scope.
6. config: represents the ServletConfig for the JSP. Page scope.
7. page: synonym for the "this" operator, as an HttpJspPage. Not used often by
page authors. Page scope.
8. session: An HttpSession. Session scope.
9. exception: the uncaught Throwable object that resulted in the error page being
invoked. Page scope.

37 | P a g e

Servlets
The Java Servlet API allows a software developer to add dynamic content to a
Web server using the Java platform. The generated content is commonly HTML,
but may be other data such as XML. Servlets are the Java counterpart to non-Java
dynamic Web content technologies such as PHP, CGI and ASP.NET. Servlets can
maintain state across many server transactions by using HTTP cookies, session
variables or URL rewriting.
The Servlet API, contained in the Java package hierarchy javax.servlet, defines
the expected interactions of a Web container and a servlet. A Web container is
essentially the component of a Web server that interacts with the servlets. The
Web container is responsible for managing the lifecycle of servlets, mapping a
URL to a particular servlet and ensuring that the URL requester has the correct
access rights.
A Servlet is an object that receives a request and generates a response based on
that request. The basic servlet package defines Java objects to represent servlet
requests and responses, as well as objects to reflect the servlet's configuration
parameters and execution environment. The package javax.servlet.http defines
HTTP-specific subclasses of the generic servlet elements, including session
management objects that track multiple requests and responses between the Web
server and a client. Servlets may be packaged in a WAR file as a Web application.
Servlets can be generated automatically by JavaServer Pages (JSP) compiler, or
alternately by template engines such as WebMacro. Often servlets are used in
conjunction with JSPs in a pattern called "Model 2", which is a flavor of the
model-view-controller pattern.
The Servlet lifecycle consists of the following steps:
1. The Servlet class is loaded by the container during start-up.
2. The container calls the init() method. This method initializes the servlet
and must be called before the servlet can service any requests. In the entire
life of a servlet, the init() method is called only once.
3. After initialization, the servlet can service client-requests. Each request is
serviced in its own separate thread. The container calls the service()
method of the servlet for every request. The service() method determines
the kind of request being made and dispatches it to an appropriate method
to handle the request. The developer of the servlet must provide an
implementation for these methods. If a request for a method that is not
implemented by the servlet is made, the method of the parent class is
called, typically resulting in an error being returned to the requester.
38 | P a g e

4. Finally, the container calls the destroy() method which takes the servlet
out of service. The destroy() method like init() is called only once in the
lifecycle of a Servlet.
Servlet containers
A Servlet container is a specialized web server that supports Servlet execution. It
combines the basic functionality of a web server with certain Java/Servlet specific
optimizations and extensions such as an integrated Java runtime environment,
and the ability to automatically translate specific URLs into Servlet requests.
Individual Servlets are registered with a Servlet container, providing the container
with information about what functionality they provide, and what URL or other
resource locator they will use to identify themselves. The Servlet container is then
able to initialize the Servlet as necessary and deliver requests to the Servlet as
they arrive. Many containers have the ability to dynamically add and remove
Servlets from the system, allowing new Servlets to quickly be deployed or
removed without affecting other Servlets running from the same container.
Servlet containers are also referred to as web containers or web engines.
Like the other Java APIs, different vendors provide their own implementation of
the Servlet container standard. For a list of some of the free and commercial web
containers, see the list of Servlet containers. (Note that 'free' means that noncommercial use is free. Some of the commercial containers, e.g. Resin and Orion,
are free to use in a server environment for non-profit organizations).

39 | P a g e

MVC Architecture
The main aim of the MVC architecture is to separate the business logic and
application data from the presentation data to the user.
Here are the reasons why we should use the MVC design pattern.
1. They are resuable : When the problems recurs, there is no need to invent a
new solution, we just have to follow the pattern and adapt it as necessary.
2. They are expressive: By using the MVC design pattern our application
becomes more expressive.
1). Model: The model object knows about all the data that need to be displayed.
It is model who is aware about all the operations that can be applied to transform
that object. It only represents the data of an application. The model represents
enterprise data and the business rules that govern access to and updates of this
data. Model is not aware about the presentation data and how that data will be
displayed to the browser.
2). View : The view represents the presentation of the application. The view
object refers to the model. It uses the query methods of the model to obtain the
contents and renders it. The view is not dependent on the application logic. It
remains same if there is any modification in the business logic. In other words, we
can say that it is the responsibility of the of the view's to maintain the consistency
in its presentation when the model changes.
3). Controller: Whenever the user sends a request for something then it always
go through the controller. The controller is responsible for intercepting the
requests from view and passes it to the model for the appropriate action. After the
action has been taken on the data, the controller is responsible for directing the
appropriate view to the user. In GUIs, the views and the controllers often work
very closely together.
Features of MVC2:
1. The MVC2 architecture removes the page centric property of MVC1
architecture by separating Presentation, control logic and the application state.
2. In MVC2 architecture there is only one controller which receives all the
request for the application and is responsible for taking appropriate action in
response to each request.

40 | P a g e

Apache Tomcat
The Apache HTTP Server, commonly referred to simply as Apache, is a web
server notable for playing a key role in the initial growth of the World Wide Web.
Apache was the first viable alternative to the Netscape Communications
Corporation web server (currently known as Sun Java System Web Server), and
has since evolved to rival other Unix-based web servers in terms of functionality
and performance.
Apache is developed and maintained by an open community of developers under
the auspices of the Apache Software Foundation. The application is available for
a wide variety of operating systems, including UNIX, FreeBSD, Linux, Solaris,
Novell NetWare, Mac OS X, Microsoft Windows, OS/2, TPF, and eComStation.
Released under the Apache License, Apache is characterized as free software and
open source software.
Since April 1996 Apache has been the most popular HTTP server on the World
Wide Web. As of June 2008[update] Apache served 49.12% of all websites.

Features
Apache supports a variety of features, many implemented as compiled modules
which extend the core functionality. These can range from server-side
programming language support to authentication schemes. Some common
language interfaces support mod_perl, mod_python, Tcl, and PHP. Popular
authentication modules include mod_access, mod_auth, and mod_digest. A
sample of other features include SSL and TLS support (mod_ssl), a proxy
module, a useful URL rewriter (also known as a rewrite engine, implemented
under mod_rewrite), custom log files (mod_log_config), and filtering support
(mod_include and mod_ext_filter).
Popular compression methods on Apache include the external extension module,
mod_gzip, implemented to help with reduction of the size (weight) of web pages
served over HTTP. Apache logs can be analyzed through a web browser using
free scripts such as AWStats/W3Perl or Visitors.
Virtual hosting allows one Apache installation to serve many different actual
websites. For example, one machine, with one Apache installation could
simultaneously
serve
www.example.com,
www.test.com,
test47.testserver.test.com, etc.

41 | P a g e

Apache features configurable error messages, DBMS-based authentication


databases, and content negotiation. It is also supported by several graphical user
interfaces (GUIs) which permit easier, more intuitive configuration of the server.
Usage
Apache is primarily used to serve both static content and dynamic Web pages on
the World Wide Web. Many web applications are designed expecting the
environment and features that Apache provides.
Apache is the web server component of the popular LAMP web server application
stack, alongside MySQL, and the PHP/Perl/Python (and now also Ruby)
programming languages.
Apache is redistributed as part of various proprietary software packages including
the Oracle Database or the IBM WebSphere application server. Mac OS X
integrates Apache as its built-in web server and as support for its WebObjects
application server. It is also supported in some way by Borland in the Kylix and
Delphi development tools. Apache is included with Novell NetWare 6.5, where it
is the default web server.
Apache is used for many other tasks where content needs to be made available in
a secure and reliable way. One example is sharing files from a personal computer
over the Internet. A user who has Apache installed on their desktop can put
arbitrary files in the Apache's document root which can then be shared.
Programmers developing web applications often use a locally installed version of
Apache in order to preview and test code as it is being developed.
Microsoft Internet Information Services (IIS) is the main competitor to Apache,
trailed by Sun Microsystems' Sun Java System Web Server and a host of other
applications such as Zeus Web Server. Some of the biggest web sites in the world
are run using Apache. Google's search engine front end is based on a modified
version of Apache, named Google Web Server (GWS). Several Wikimedia
projects also run on Apache servers.

42 | P a g e

Main Page (index.jsp)

43 | P a g e

Login.html

44 | P a g e

Customers Page

45 | P a g e

Funds Transfer page

46 | P a g e

Funds confirmation page

47 | P a g e

Mini Statement page

48 | P a g e

49 | P a g e

Mini Statement page

50 | P a g e

Mobile Recharge page

51 | P a g e

Form Download Center page

52 | P a g e

Branch Locator page

53 | P a g e

Branch Locator page

54 | P a g e

Credit card page

55 | P a g e

Credit card registration form

56 | P a g e

Administrator end

57 | P a g e

New user Registration Form page

58 | P a g e

Packages
com.example.model
com.example.web
org.apache.jsp

Package com.example.model
Class Summary
AccountModel
CancelTransModel
ConfirmationModel
DeleteQueryModel
EmployeeAuthorizeModel
ListenerModel
LocatorQueryModel
MobileModel
QueryModel
RegisterQueryModel
ShowModel
test
TransferQueryModel
UpdateQueryModel

Package com.example.web
Class Summary
AccountSummary
CancelTrans
Confirmation
DatabaseListener
DatabaseTest
DeleteAcct
EmployeeLoginId
Expdf

59 | P a g e

Locator
LoginId
Mobile
Register
Show
Transfer
Update

Package org.apache.jsp
Class Summary
_02_jsp
AccountSummary_jsp
Administrator_jsp
blocate_jsp
BranchLocate_jsp
confirm_jsp
confirmrecharge_jsp
index_jsp
locate_jsp
main_jsp
miniStatement_jsp
MobileRecharge_jsp
transaction_jsp

60 | P a g e

ListenerModel.java
package com.example.model;

import java.sql.*;
package com.example.model;
import java.sql.*;
public class ListenerModel
{
public Statement stmt;
public Connection conn;
public ResultSet rs;
private String cn;
private String pn;
private String sd;
private String uid;
private String pwd;
public ListenerModel(String ComputerName,String portNo, String sid, String userId, String passwd)
{
cn = ComputerName;
pn = portNo;
sd = sid;
uid = userId;
pwd = passwd;
System.out.println(cn + ComputerName);
try
{
String str = "jdbc:oracle:thin:@" + cn + ":" + pn + ":" + sd ;
System.out.println(str);
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(str, uid, pwd);
stmt = conn.createStatement();
}
catch(Exception e)
{
System.out.println("exception:" + e);
}
}
public void doClose()
{
try
{
rs.close();
stmt.close();
conn.close();
}
catch(Exception e)

61 | P a g e

{
System.out.println("Exception" + e);
}
}
}

DatabaseListener.java
package com.example.web;
import javax.servlet.*;
import com.example.model.ListenerModel;
public class DatabaseListener implements ServletContextListener
{
public void contextInitialized(ServletContextEvent event)
{
String ComputerName = event.getServletContext().getInitParameter("ComputerName");
String portNo = event.getServletContext().getInitParameter("PortNo");
String Sid = event.getServletContext().getInitParameter("Sid");
String userID = event.getServletContext().getInitParameter("UserId");
String Passwd = event.getServletContext().getInitParameter("Passwd");
ListenerModel l = new ListenerModel(ComputerName, portNo, Sid, userID, Passwd );
event.getServletContext().setAttribute("Database",l);
}

public void contextDestroyed(ServletContextEvent event) {


// Nothing to to here
}
}

62 | P a g e

Loginid.java
package com.example.web;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.example.model.ListenerModel;
import com.example.model.QueryModel;
public class LoginId extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response)throws
IOException,ServletException
{
String s=null;
response.setContentType("text/html");
try
{
HttpSession session;
session = request.getSession(true);
ListenerModel l = (ListenerModel)getServletContext().getAttribute("Database");
String uname = request.getParameter("loginid");
String pname = request.getParameter("pass");
QueryModel q = new QueryModel();
int result = q.authorize(l,uname,pname);
q.userAccount(l,uname);
if(result==1)
{
session.setAttribute("s",q.cname);
session.setAttribute("myacct",q.account);
response.sendRedirect("main.jsp");
}
else
{
response.sendRedirect("index.jsp");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}

63 | P a g e

QueryModel.java
package com.example.model;
import java.sql.*;
public class QueryModel
{
public int account;
public int id=0;
public String str[] = new String[100];
public int flag=1;
public String cname;
public int authorize(ListenerModel l1,String name,String pass)
{
try
{
l1.rs = l1.stmt.executeQuery("select username,password,cust_first_name from customer, login where
login.username='"+name+"' and login.password= '"+pass+"'and login.customer_id=customer.customer_id")
;
if(l1.rs.next())
{
cname=l1.rs.getString("cust_first_name");
return flag;
}
return flag = 0;
}
catch(Exception e)
{
System.out.println("Exception:" + e);
}
return flag;
}
public void userAccount(ListenerModel l1,String name)
{

try
{
l1.rs=l1.stmt.executeQuery("select customer_id from login where username ='"+name+"'");
while(l1.rs.next())
{
id = l1.rs.getInt("customer_id");
}
System.out.println(id);

64 | P a g e

l1.rs = l1.stmt.executeQuery("select acc_no from account where account.customer_id='"+id+"' ");


while(l1.rs.next())
{
account= l1.rs.getInt("acc_no");
}
System.out.println(account);
}
catch(Exception e)
{
System.out.println("Exception:" + e);
}
}
}

02.jsp getting into the customer page


<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

1.0

Transitional//EN"

<body>
<table width="100%" height="337" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="23" align="right"> Welcome
<%
String username=(String)session.getAttribute("s" );
out.print(username);
%>
<%= (Integer)session.getAttribute("myacct") %>
</td>
</tr>
<tr>
<td height="312">&nbsp;</td>
</tr>
</table>
</body>
</html>

65 | P a g e

TransferQueryModel.java
package com.example.model;

import java.sql.*;
import java.util.*;
import java.io.*;
public class TransferQueryModel
{
public int source;
public int destination;
public int transamount;
public int caccno;
public int maccno;
public String name;
public int id=0;
public int flag = 1;
int [] account = new int[2];
int j =0;
public int transact(ListenerModel l1,int acctFrom,int acctTo,int amount,String name)
{

try
{

l1.rs=l1.stmt.executeQuery("select customer_id from customer where cust_first_name='"+name+"'");


while(l1.rs.next())
{
id = l1.rs.getInt("customer_id");
}
System.out.println(id);
l1.rs
=
l1.stmt.executeQuery("select
account.customer_id='"+id+"' ");
while(l1.rs.next())
{
account[j]= l1.rs.getInt("acc_no");
j++;
caccno = l1.rs.getInt("curr_bal");
maccno = l1.rs.getInt("min_bal");
}
System.out.println(caccno);
System.out.println(maccno);

acc_no,curr_bal,min_bal

from

account

where

for(int i = 0 ; i < 3 ; i++)


{
if(acctFrom == account[i] && caccno > amount && caccno > maccno)
{

66 | P a g e

l1.rs
=
l1.stmt.executeQuery("insert
(acc_no,account_to,amount,transaction_date,trans_no,description)
values('"+acctFrom+"','"+acctTo+"','"+amount+"',sysdate,2,'Debit') ");
//l1.rs
=
l1.stmt.executeQuery("insert
(account_to,amount,transaction_date,trans_no,description)
values('"+acctTo+"','"+amount+"',sysdate,1,'Credit') ");

into

transfer

into

transfer

l1.rs = l1.stmt.executeQuery("select acc_no,account_to,amount,transaction_date from transfer where


trans_id = (select max(trans_id) from transfer)order by trans_id");

while(l1.rs.next())
{
source =l1.rs.getInt("acc_no");
destination = l1.rs.getInt("account_To");
transamount=l1.rs.getInt("amount");
}
System.out.println(source);
return flag;

}
else
{
flag = 0;
return flag;
}
}

}
catch(Exception e)
{
System.out.println("Exception:" + e);
}
return flag;
}
}

67 | P a g e

Web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
app_2_5.xsd"
version="2.5">

http://java.sun.com/xml/ns/javaee/web-

<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.example.web.LoginId</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Database</servlet-name>
<servlet-class>com.example.web.DatabaseTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Database</servlet-name>
<url-pattern>/Database.do</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Reg</servlet-name>
<servlet-class>com.example.web.Register</servlet-class>

68 | P a g e

</servlet>
<servlet-mapping>
<servlet-name>Reg</servlet-name>
<url-pattern>/reg.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Locate</servlet-name>
<servlet-class>com.example.web.Locator</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Locate</servlet-name>
<url-pattern>/locate.do</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Expdf</servlet-name>
<servlet-class>com.example.web.Expdf</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Expdf</servlet-name>
<url-pattern>/New User Application Form</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Transfer</servlet-name>
<servlet-class>com.example.web.Transfer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Transfer</servlet-name>
<url-pattern>/transact.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AdminLogin</servlet-name>
<servlet-class>com.example.web.EmployeeLoginId</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdminLogin</servlet-name>
<url-pattern>/admin.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DeleteAcct</servlet-name>
<servlet-class>com.example.web.DeleteAcct</servlet-class>
</servlet>
<servlet-mapping>

69 | P a g e

<servlet-name>DeleteAcct</servlet-name>
<url-pattern>/delete.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>CancelTransaction</servlet-name>
<servlet-class>com.example.web.CancelTrans</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CancelTransaction</servlet-name>
<url-pattern>/cancel.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Confirmation</servlet-name>
<servlet-class>com.example.web.Confirmation</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Confirmation</servlet-name>
<url-pattern>/confirm.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Mobile</servlet-name>
<servlet-class>com.example.web.Mobile</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Mobile</servlet-name>
<url-pattern>/mobile.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Show</servlet-name>
<servlet-class>com.example.web.Show</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Show</servlet-name>
<url-pattern>/show.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AccountSummary</servlet-name>
<servlet-class>com.example.web.AccountSummary</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AccountSummary</servlet-name>
<url-pattern>/summary.do</url-pattern>
</servlet-mapping>

70 | P a g e

<context-param>
<param-name>ComputerName</param-name>
<param-value>gamearena</param-value>
</context-param>
<context-param>
<param-name>PortNo</param-name>
<param-value>1521</param-value>
</context-param>
<context-param>
<param-name>Sid</param-name>
<param-value>bank</param-value>
</context-param>
<context-param>
<param-name>UserId</param-name>
<param-value>scott</param-value>
</context-param>
<context-param>
<param-name>Passwd</param-name>
<param-value>tiger</param-value>
</context-param>
<listener>
<listener-class>
com.example.web.DatabaseListener
</listener-class>
</listener>
</web-app>

71 | P a g e

Testing Methodology
Testing is vital for the success of the system. Software testing reviews the
specification, design and coding of the system and helps in software quality
assurance. It focuses on finding operational flaws in the system. So that the
software becomes error-free and prevents failure.
Testing is a process of executing a program with the intent of finding an error. A
good test is one that has a high probability of finding a yet undiscovered error.
Thus, systematic test should be carried out that uncovers different types of error
with minimum amount of time and effort.
Testing is also carried out to see if the performance requirements have been met.
Testing is also a good indication for software reliability.
Testing is carried out at various stages. In this project, I did unit testing and
system testing during the testing phase.
Unit Testing
Unit testing is performed on the smallest unit of software design the modules.
Unit testing gives stress on the modules independently of one another, to find
errors. A program unit is usually small enough for the programmer to test it in
great detail. Unit testing helps in detecting errors in coding and logic that are
contained within the module.
During the unit testing phase, various modules in the developed system were
tested separately. For example, in the data entry module, the sample data was fed
into this module to check whether all the validations that are applied on input
forms are working properly or not. Unit testing also helped me in finding out
whether the data was properly saved in the database or not. Likewise, this testing
method was applied on the modification, deletion, search, pay slip generation and
report modules.
Some of the tests carried during unit testing phase were:
Peak Load Test: The test determined whether the system can handle the volume
of activities that occur when the system is at the peak of its processing. All the
modules passed this test.
Procedure Test: This test helped in checking the specified operating conditions,
input values and expected results
Performance Test: The test checked the response time, execution time and
throughput time of the modules.

72 | P a g e

Recovery Test: The test helped in verifying the ability of the system to recover
from failure. Some changes were made in the modules to fulfill this test
requirement.
Storage Test: It helped in checking whether the transaction data was properly
being saved on the disk or not. Changes were made in the modules according to
this tests results.
The unit testing helped in finding out which module of the system is not working
as desired. Accordingly, changes were made and then the modules were tested
again, until they were up to the expected standard.
System Testing
During system testing phase, all the sub-systems are gathered and a test is
conducted to determine whether the whole system meets the user requirements. A
system is tested for online responses, volume of transactions, stress, recovery
from failure and usability.
System testing involves two kinds of activities.
Integration Testing: Integration testing is of two kinds Bottom-Up integration
and Top-Down Integration. For this system, Bottom-Up Integration Testing was
carried out.
Bottom-up Integration is the traditional strategy used to integrate the components
of a software system into a functioning whole. Bottom-up integration consists of a
Unit Testing, followed by the Sub-System Testing, and testing of the entire
system. Unit testing has the goal of discovering errors in the individual modules
of the system. The primary function of Sub-System testing is to verify operation
of the interface between the modules in the sub-system. System testing is
concerned with the decision-logic, control flow, recovery procedures, capacity
and timing characteristics of the entire system.

User Acceptance Testing: The user acceptance test verifies that the systems
procedures operate up to systems specifications and that the integrity of the data
is maintained. It involves the execution of Procedure Test, Performance Test and
Peak-Load Test. It demonstrates that the system satisfies all the user requirements

73 | P a g e

Limitations

The project can be best viewed on Firefox.


It provides banking facilities to personal banking.
Enterprise Java Beans have not been implemented.
SSL is not implemented.
Loan facilities, credit card login is not being provided.

Future Enhancements
The Online Banking project can be enhanced in future, which will increase the
credibility and reliability of the website. The enhancements could be done by
adding credit checks generating credit card statements. The enhancements that
could be done are as follows:

It can be implemented fully on the Internet by registering a domain and buying


a web space.

It can provide the Credit card bill payment option.

It can provide user loan facilities with interest rates in accordance with bank to.

It can be merged with other e-commerce websites for providing a gateway to


pay through credit cards .

74 | P a g e

Bibliography
Books
Kathy Sierra & Bert Bates, Head First JSP and Servlets
Kathy Sierra & Bert Bates, Head First Java
Chip Dawes & Biju Thomas, Introduction To Oracle 9i
Lynn Beighley, Head First SQL
Roger Pressman, Software Engineering
Michael Morrison, Head First Java Script
Websites
www.sourceforge.net
www.javaranch.com
www.w3schools.com
www.webreference.com
References

www.icicibank.com
www.hdfcbank.com
www.unitybanking.com

75 | P a g e

Das könnte Ihnen auch gefallen