You are on page 1of 11

04/28/09 03:49:21

Article
Home> Articles > JSP > Architecture / Design

JSP and J2EE Design Tutorial

After going through the JSP tutorial,you should now be able to write simple web based applications. This tutorial goes
further by presenting different architectue and design options. It defines a stable and versatile environment for web
applications

1/11
04/28/09 03:49:21

Summary of how JSP works

JSP enables the dynamic generation of web pages,similar to ASP.NET and PHP.

When someone visits a JSP page,the HTML web page is generated and sent back to the visitor. Below you can see the
construction of a basic web page. The HTML source code on the side shows the output The date today is.

In order for a static web page to show today's date,it would need to be edited every day and uploaded to the web server.
This is very time consuming for such a simple task. This is where the dynamic generation of web pages is used.

2/11
04/28/09 03:49:21

In the JSP above,special syntax is used to signify that the current date needs to be displayed. You have probably seen this
in the JSP tutorial already. This special syntax is processed on the web server and sent back to the visitor as a normal
(html) web page.

3/11
04/28/09 03:49:21
Introduction to terms; JSP,J2EE,EJB and Ser

Today,more and more companies want to develop distributed transactional applications for the enterprise and leverage the
speed,security,and reliability of server-side technology. Before presenting a way of designing such a system,several key
terms need to be understood.

What is J2EE?

The Java 2 Platform Enterprise Edition (J2EE) technology provides a component-based approach to the
design,development,assembly,and deployment of enterprise applications. The J2EE platform provides the ability to reuse
components in different applications. J2EE is made up of 13 different technologies including JavaServer
Pages,Servlets,Enterprise JavaBeans,JavaMail,XML,JavaMail and many more.

The main technologies that we will be using are:


• JavaServer Pages (JSP).
• Servlets
• EJB

What are JavaServer Pages?

JavaServer Pages (JSP) is a technology based on the Java language and enables the development of dynamic web sites.
JSP was developed by Sun Microsystems to allow server side development. JSP files are HTML files with special Tags
containing Java source code that provide the dynamic content.

4/11
04/28/09 03:49:21

What are Servlets?

A Servlet is a Java class that provides special server side service. To display any information on a web page,HTML code
is embedded in “println” statements. JSP technology is an extension of Servlets. It is easier to generate GUI pages using
JSP because a web page editor (such as Macromedia DreamWeaver ) can be used to create simple pages.

What are Enterprise JavaBeans?

Enterprise JavaBeans (EJB) provides a component specification for the development of scalable and secure middleware
components. The EJB Server handles security and transaction management details so developers can focus on
implementing the business logic.

What are the benefits of using J2EE?

There are several reasons for using the J2EE set of technologies:

Extensibility and maintainability


Division of work along skill lines
Scalability,portability,availability.
Code reuse.
Interoperability – legacy integration
Focus on implementing business logic
Separation of code with differing rates of change.

5/11
04/28/09 03:49:21

Simple J2EE application

Simple J2EE application

In our simple J2EE application,the customer visits a web page (JSP). The request is sent to the web server then passed to
the JSP and Servlet engine. The JSP code is executed including a search on the database. The database results are returned
to the JSP page. The JSP page dynamically generates a HTML page with the data and sends it to the Customer

Advantages.
• Simple of understand and initially develop.

Disadvantages.
• The JSP page is very difficult to maintain. It contains HTML and Java code with queries to the database. The business
logic should not be in the JSP; otherwise many pages will need to be changed every time business requirements change.
• Need to have data connectivity code in every JSP page.
• Does not scale up very well.
• Security issues - If a hacker gained access to the web server,all the confidential business logic can be read by opening
the JSP files.

6/11
04/28/09 03:49:21

Web Application using EJB

The following diagram shows the architecture of a typical J2EE application. This is similar to the previous
example,except all business logic is contained in different EJB components.

The diagram below shows how the JSP connects to the EJB object,which queries the database. This was the JSP does not
contain the database queries and some business logic has been moved into the EJB layer. The EJB container is designed to
create copies (instances) of the EJB class as required in memory. This enables it to scale up as multiple requests come in.

Advantages.

7/11
04/28/09 03:49:21
• More secure because all the business logic is stored in the EJB components. An EJB component can be
configured so only a specific user in a group can be given access to a limited set of methods.
• By adding more EJB Application Servers,the system can easily scale up. However,you need to make sure the EJB
components have been designed and deployed correctly.
• Transaction Management support - Transaction attributes are specified on an application component during
assembly. This lets you group methods into transactions across application components,which means you can
easily change application components within a J2EE application and reassign the transaction attributes without
changing code and recompiling.

Disadvantages.

• All the JSP pages need to include code that locates the EJB components.
• There is still quite a bit of functionality in the JSP files.
• The current architecture does not support reuse at the JSP level so all the code will need to be replicated. This will
cause major maintenance problems.
• The JSP pages are still too complex for web designers to use.

8/11
04/28/09 03:49:21

Web Application using reusable components

Web Application using reusable components

This scenario extends the previous web application. Here common and useful code is taken out of the JSP pages and
moved into a JavaBean. Each JavaBean contains related methods specific to an application requirement. For example,all
email methods such as mailing a message and mailing a file are stored in one JavaBean.

Advantages.

• Simplifies the JSP page so a web designer can edit the design using their chosen tool.
• Benefits of component reuse such as sharing common code,maintaining one set of code in one place and making
testing quicker.
• Allows the clean separation of tasks. One person working on making the web pages,whilst another works on the
Java code.

Disadvantages.

• Need to make sure the components are designed correctly (granularity) otherwise they will not be reused.
• Not the most suitable for small to medium deployments as the EJB application server can consume alot of CPU
and Memory resources.

9/11
04/28/09 03:49:21

Layered Approach

Layered Approach.
The actual architecture of the application has been separated out into several layers.

1. Presentation view
2. Presentation logic
3. Business logic
4. Data Model

1. Presentation view.

This is the actual look,feel and presentation of the application. In J2EE,Java Server Pages (JSP) are used to implement
your view.

2. Presentation Logic

This is the code required to call business logic and return output to the view. Java Servlets / java beans are the best way to
implement presentation logic.

3. Business Logic

This is code required to execute the usecase actions and manipulate the data model. EJB Session beans are the containers
of the business logic for all your usecases.

4. Data Model

J2EE provides a useful abstraction for your data model,called EJB Entity beans. These are persistent objects that model
your real world business abstractions.

The layered approach has the following benefits:


• Encapsulation – each layer hides details from the other layers. Therefore a layer can change without affecting other
layers.
• Separation - Complexity in the system is easier to manage because each layer is focused on a cohesive set of
responsibilities.
• Reuse – each layer can provide services to the layer above,so classes can be reused whilst still abstracting the
implementation details.

This leads to applications that are more flexible and maintainable.

10/11
04/28/09 03:49:21
Appendix A - Summary of Recommendations

Date entered : 1st Oct 2006


Rating :No Rating
Submitted by : visualbuilder

Copyright Visualbuilder.com 1999-2006


Document created date: 28 Apr 2009

11/11

You might also like