Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
batch processing programs that have access to all the facilities of the Java EE middle tier.
processing transactional business logic. They can be accessed locally and remotely through RMI or HTTP for SOAP and RESTful web services .
2
The Model View Controller MVC design pattern separates the core business model functionality from the presentation and control logic that uses this functionality. The separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain.
Source: Java BluePrints J2EE Patterns, MVC
http://java.sun.com/blueprints/patterns/MVC-detailed.html
Wednesday, January 27, 2010 3
In a JEE application:
Must accommodate input from various clients including HTTP requests from web clients, and
Display information according to client types Display result of business logic Model Not concerned with how the information was obtained, or from where since that is the responsibility of Model
Web Applications
A web application is a dynamic extension of a web or application server. Types of web applications:
Presentation oriented
generates interactive web pages containing various types of markup language HTML, XHTML, XML, and so on and dynamic content in response to requests.
Service oriented
A request enters the application through the control layer, which will decide how the request should be handled and what information should be returned
In Java EE platform, web components provide the dynamic extension capabilities for a web server.
Web components are either Java servlets, web pages, web service
endpoints, or JSP pages
Java EE Architecture
DB
Java EE is a set of specications implemented by di erent containers. Containers are Java EE runtime environments that provide certain services to the components they host such as lifecycle management, dependency injection, security, etc. Figure shows the logical relationships between containers. The arrows represent the protocols used.
10
DB
Java EE Services
JPA: Standard API for object relational mapping ORM . Includes JPQL to query objects stored in the underlying database. JMS: allows components to communicate asynchronously through messages. Java Naming and Directory Interface JNDI : used to access naming and directory systems. JTA: a transaction demarcation API JavaMail, JavaBeans Activation Framework JAF , XML processing, JCA, JAAS, RESTful web services, Management, Deployment.
12
JPA
Relational model i.e. RDBMS vs. Object Oriented model i.e. Java Object Relational Mapping ORM Java Persistence API JPA
JPA
Objects vs. Entities Objects are instances that just
live in memory.
@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 }
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 DB related operations like CRUD Includes JPQL, an object oriented query language
13
entity is directly annotated with all sorts of annotations described in the javax.persistence package.
14
JPA mapping
15
16
Types of EJBs
Session beans and Message driven Beans MDBs Session Beans are used to encapsulate high level business logic and can be...
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; } }
Stateless: contains no conversational state between methods, and any instance can be used for any client Stateful: contains conversational state, which must be retained across methods for a single user Singleton: A single session bean is shared between clients and supports concurrent access
17
18
Web servers
JSF
Handles HTTP requests and sends a HTTP response HTML page Default HTTP port: 80 Typical servers: Apache 47 , MS 21
typically
Web languages
HTML CSS JavaScript
19
JSF applications are standard web applications that intercept HTTP via the Faces servlet and produce HTML
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" YPE "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/x <html xmlns="http://www.w3.org/1999/xhtml ns=" "http://www.w3.org/1999/xhtml" xmlns:h=" h="http://java.sun.com/jsf/html"> h=" <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>
xmlns= xml
servlets, JSPs, JSF pages, and web services, as well as HTML and XHTML pages, Cascading Style Sheets CSS , JavaScripts, images, videos, and so on.
<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>
Wednesday, January 27, 2010 21
All these artifacts are packaged in a jar le with a .war extension i.e., a war le, or Web Archive.
WEB-INF/web.xml is the optional web deployment descriptor WEB-INF/ejb-jar.xml is the optional EJB Lite beans deployment descriptor. WEB-INF/classes contains all the Java .class les WEB-INF/lib contains any dependent jar les.
22