Date post: | 07-Apr-2018 |
Category: |
Documents |
Upload: | tran-dinh-tue |
View: | 221 times |
Download: | 0 times |
8/4/2019 00 Intro to Jee
http://slidepdf.com/reader/full/00-intro-to-jee 1/6
Java EE: An Introduction
JPA, EJB, JSF
1Wednesday, January 27, 2010
Java EE Components
• Applets: GUI app’s executed in a web browser. They use theSwing API to provide powerful user interfaces.
• Applications: programs executed on a client. Typically GUIs or
batchprocessing programs that have access to all the facilities of the Java EE middle tier.
• Web applications: app’s executed in a web container and respondto HTTP requests from web clients.
• Made of servlets, servlet filters, web event listeners, JSP pages,and JSF. Servlets also support web service endpoints
• Enterprise Java Beans: containermanaged components forprocessing transactional business logic. They can be accessedlocally and remotely through RMI or HTTP for SOAP and
RESTful web services .2Wednesday, January 27, 2010
MVC Design Pattern
• The ModelView Controller MVC design pattern separates
the core business modelfunctionality from thepresentation and control logicthat uses this functionality.
• The separation allows multiple views to share the sameenterprise data model, whichmakes supporting multipleclients easier to implement,test, and maintain.
Source: Java BluePrints J2EE Patterns, MVC http://java.sun.com/blueprints/patterns/MVC-detailed.html
3Wednesday, January 27, 2010
JEE app and the MVC architecture
• In a JEE application:
• The model business layer functionality represented by JavaBeans orEJBs
• The view the presentation layer functionality represented by JSFs the view
• The controller Servlet mediating between model and view
• Must accommodate input from various clients including HTTP requests from web clients, and…
• WML from wireless clients
• XML documents from suppliers
• Etc.
4Wednesday, January 27, 2010
8/4/2019 00 Intro to Jee
http://slidepdf.com/reader/full/00-intro-to-jee 2/6
Model layer in a Web App
• Models the data and behavior behind the business process
• What it’s responsible for:
• Performing DB queries
• Calculating the business process
• Processing orders
• Encapsulation of data and behavior which are independentof presentation
5Wednesday, January 27, 2010
View layer in a Web App
• Display information according to client types
• Display result of business logic Model
• Not concerned with how the information was obtained, orfrom where since that is the responsibility of Model
6Wednesday, January 27, 2010
Controller in a Web App
• Serves as the logical connection between the user's
interaction and the business services on the back• Responsible for making decisions among multiple
presentations
• e.g. User's language, locale or access level dictates a di erentpresentation.
• A request enters the application through the control layer, which will decide how the request should be handled and what information should be returned
7Wednesday, January 27, 2010
Web Applications
• A web application is a dynamic extension of a web or applicationserver. Types of web applications:
• Presentationoriented
• generates interactive web pages containing various types of markup language HTML, XHTML, XML, and so on and dynamic content in response to requests.
• Serviceoriented
• A serviceoriented web application implements the endpoint of a web service.
• In Java EE platform, web components provide the dynamicextension capabilities for a web server.
• Web components are either Java servlets, web pages, web serviceendpoints, or JSP pages
8Wednesday, January 27, 2010
8/4/2019 00 Intro to Jee
http://slidepdf.com/reader/full/00-intro-to-jee 4/6
JPA
• Relational model i.e. RDBMS vs. Object Oriented model i.e. Java
• ObjectRelational Mapping ORM
• Java Persistence API JPA
• An API above JDBC
• Can access and manipulate relational data from Enterprise Java Beans EJBs , web components, and Java SE applications
• Includes an entity manager API to perform DBrelatedoperations like CRUD
• Includes JPQL, an objectoriented query language
13Wednesday, January 27, 2010
JPA
• Objects vs. Entities
• Objects are instances that justlive in memory.
• Entities are objects that liveshortly in memory andpersistently in a database.
• JPA map objects to a database via metadata that can be suppliedusing annotations or in an XMLdescriptor
• Annotations: The code of theentity is directly annotated with allsorts of annotations described in
the javax.persistence package.
@Entity
public class Book {
@Id @GeneratedValue
private Long id;
@Column(nullable = false)
private String title;
private Float price;
@Column(length = 2000)
private String description;
private String isbn;
private Integer nbOfPage;
private Boolean illustrations;
// Constructors, getters, setters
}
14Wednesday, January 27, 2010
JPA mapping
15Wednesday, January 27, 2010
Enterprise Java Beans
• serverside components
• encapsulate business logic
• take care of transactions and security
• used in building business layers to sit on topof the persistence layer and as an entry pointfor presentationtier technologies like JavaServer Faces JSF .
• can be built by annotating a POJO that willbe deployed into a container
16Wednesday, January 27, 2010
8/4/2019 00 Intro to Jee
http://slidepdf.com/reader/full/00-intro-to-jee 5/6
Types of EJBs
• Session beans and Messagedriven Beans MDBs
• Session Beans are used to encapsulate highlevel businesslogic and can be...
• Stateless: contains no conversational state between methods, andany instance can be used for any client
• Stateful: contains conversational state, which must be retainedacross methods for a single user
• Singleton: A single session bean is shared between clients andsupports concurrent access
17Wednesday, January 27, 2010
EJB Example
@Stateless
public class BookEJB {
@PersistenceContext(unitName = "chapter06PU")
private EntityManager em;
public Book findBookById(Long id) {
return em.find(Book.class, id);
}
public Book createBook(Book book) {
em.persist(book);
return book;
}
}
18Wednesday, January 27, 2010
Web pages and web servers
• Web servers
• Handles HTTP requests and sends a HTTP response typically
HTML page• Default HTTP port: 80
• Typical servers: Apache 47, MS 21
• Netcraft Web Server Survey December 2009
• “Web languages”
• HTML
• CSS
• JavaScript
19Wednesday, January 27, 2010
JSF
• JSF applications arestandard webapplications thatintercept HTTP via the Faces servlet andproduce HTML
20Wednesday, January 27, 2010
8/4/2019 00 Intro to Jee
http://slidepdf.com/reader/full/00-intro-to-jee 6/6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">
<html xmlns=""
http://www.w3.org/1999/xhtml"
xmlns:h="
"http://java.sun.com/jsf/html">
<h:head>
<title>Creates a new book</title>
</h:head>
<h:body>
<h1>Create a new book</h1>
<hr/>
<h:form>
<table border="0">
<tr><td><h:outputLabel value="ISBN : "/></td>
<td><h:inputText value="#{bookController.book.isbn}"/></td>
</tr>
<tr>
<td><h:outputLabel value="Title :"/></td>
<td><h:inputText value="#{bookController.book.title}"/></td>
</tr>
</table>
<h:commandButton value="Create a book"
action="#{bookController.doCreateBook}" styleClass="submit"/>
</h:form>
<hr/>
<i>APress - Beginning Java EE 6</i>
</h:body></html>
21Wednesday, January 27, 2010
Packaging Java EE Web Apps
• A web application module contains:
• servlets, JSPs, JSF pages, and web services,
•as well as HTML and XHTML pages, Cascading Style Sheets CSS , JavaScripts, images, videos, and so on.
• All these artifacts are packaged in a jar file with a .war extension i.e., a war file, or Web Archive.
• WEB-INF/web.xml is the optional web deployment descriptor
• WEB-INF/ejb-jar.xml is the optional EJB Lite beansdeployment descriptor.
• WEB-INF/classes contains all the Java .class files
• WEB-INF/lib contains any dependent jar files.22Wednesday, January 27, 2010