Java EE Introduction, Content. Component Architecture: Why and How Java EE: Enterprise Java



Similar documents
Principles and Techniques of DBMS 5 Servlet

Managing Data on the World Wide-Web

ACM Crossroads Student Magazine The ACM's First Electronic Publication

How To Understand The Architecture Of Java 2Ee, J2Ee, And J2E (Java) In A Wordpress Blog Post

PA165 - Lab session - Web Presentation Layer

}w!"#$%&'()+,-./012345<ya

Web Container Components Servlet JSP Tag Libraries

Java EE 7: Back-End Server Application Development

Java Servlet Tutorial. Java Servlet Tutorial

Arjun V. Bala Page 20

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Creating Java EE Applications and Servlets with IntelliJ IDEA

Glassfish, JAVA EE, Servlets, JSP, EJB

Building Web Applications, Servlets, JSP and JDBC

Piotr Nowicki's Homepage. Java EE 6 SCWCD Mock Exam. "Simplicity is the ultimate sophistication." Important!

Tutorial c-treeace Web Service Using Java

Implementing the Shop with EJB

An introduction to web programming with Java

Introduction to J2EE Web Technologies

Web Application Programmer's Guide

Database Applications Recitation 10. Project 3: CMUQFlix CMUQ s Movies Recommendation System

2.8. Session management

Java Servlet 3.0. Rajiv Mordani Spec Lead

Developing Java Web Services

WEB SERVICES. Revised 9/29/2015

2. Follow the installation directions and install the server on ccc

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

Servlet 3.0. Alexis Moussine-Pouchkine. mercredi 13 avril 2011

The end. Carl Nettelblad

Course Name: Course in JSP Course Code: P5

Supplement IV.E: Tutorial for Tomcat. For Introduction to Java Programming By Y. Daniel Liang

Course Number: IAC-SOFT-WDAD Web Design and Application Development

Servlets. Based on Notes by Dave Hollinger & Ethan Cerami Also, the Online Java Tutorial by Sun

Developing an EJB3 Application. on WebSphere 6.1. using RAD 7.5

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo.

Ch-03 Web Applications

Core Java+ J2EE+Struts+Hibernate+Spring

Agenda. Summary of Previous Session. Application Servers G Session 3 - Main Theme Page-Based Application Servers (Part II)

Java EE 6 Ce qui vous attends

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

JVA-561. Developing SOAP Web Services in Java

CrownPeak Java Web Hosting. Version 0.20

INTRODUCTION TO WEB TECHNOLOGY

What Is the Java TM 2 Platform, Enterprise Edition?

Penetration from application down to OS

IBM WebSphere Server Administration

WebSphere and Message Driven Beans

CS Developing Web Applications with Java Technologies

SSC - Web development Model-View-Controller for Java web application development

Client/server is a network architecture that divides functions into client and server

Virtual Open-Source Labs for Web Security Education

JSP. Common patterns

Framework Adoption for Java Enterprise Application Development

Tutorial: Building a Web Application with Struts

DTS Web Developers Guide

WebSphere Server Administration Course

WebSphere Training Outline

Japan Communication India Skill Development Center

Japan Communication India Skill Development Center

Modern Software Development Tools on OpenVMS

Introduction to Sun ONE Application Server 7

Complete Java Web Development

Getting Started with Web Applications

Outline. Lecture 9: Java Servlet and JSP. Servlet API. HTTP Servlet Basics

Java Web Programming. Student Workbook

JBoss JEE5 with EJB3.0 on NonStop. JAVA SIG, San Jose

The Java EE 6 Platform. Alexis Moussine-Pouchkine GlassFish Team

Japan Communication India Skill Development Center

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Web Development in Java Live Demonstrations (Live demonstrations done using Eclipse for Java EE 4.3 and WildFly 8)

1 What Are Web Services?

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Module 13 Implementing Java EE Web Services with JAX-WS

Web Development in Java Part I

Portals, Portlets & Liferay Platform

Learning GlassFish for Tomcat Users

Building Web Services with Apache Axis2

Web Applications. For live Java training, please see training courses at

chapter 3Chapter 3 Advanced Servlet Techniques Servlets and Web Sessions Store Information in a Session In This Chapter

OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN

zen Platform technical white paper

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

In this chapter the concept of Servlets, not the entire Servlet specification, is

Building and Using Web Services With JDeveloper 11g

Building Java Servlets with Oracle JDeveloper

1 What Are Web Services?

Japan Communication India Skill Development Center

AN OVERVIEW OF SERVLET AND JSP TECHNOLOGY

7 Web Databases. Access to Web Databases: Servlets, Applets. Java Server Pages PHP, PEAR. Languages: Java, PHP, Python,...

Web Programming with Java Servlets

Transcription:

Java EE Introduction, Content Component Architecture: Why and How Java EE: Enterprise Java

The Three-Tier Model The three -tier architecture allows to maintain state information, to improve performance, scalability and availability Client in the first tier - presentation layer Business logic in 2nd tier - security and personalization of the client System services (and databases) in 3rd tier services and storage 1st tier Client GUI 2nd tier Business logic 3rd tier DBMS Data Services 2 2

Why Component Architecture Rapid application development Reusability and portability of parts of the software system Decrease of the need for in-house expertise 3 3

Why Container-Managed Components Avoid writing infrastructure code for nonfunctional requirements like navigation, validation, transactions, security and O/Rmapping. Frameworks are thoroughly tested and proven to work well. Lots of documentation, easy to get help. 4

Why Container-Managed Components, Cont'd Non-functional requirements are difficult to code. Not using a framework means writing new code which means introducing new bugs. Callback style makes sure all calls to nonfunctional requirements code are made at the right time. Handled by the framework. 5

How Component Architecture Component a reusable program building block for an application; presents a manageable, discrete chunk of logic (functionality); implements a set of well-defined interfaces. Examples: pricing component, billing component Container an application program or a subsystem in which the component lives; Component s context; creates, manages and glues components; provides life cycle management, security, deployment, and runtime services for components it contains (component contract). Examples: Web container (for JSF pages and Servlets), EJB container (for EJBs) 6 6

How Component Architecture (cont d) Specifications For components, containers (hosts), and tools (development, deployment) Set of conventions (standards) for Container (Context) Services APIs (classes, interfaces, methods, constructors) Names Semantics A well-defined component architecture is a set of standards (specifications) necessary for different vendors to write the components, containers and tools 7 7

Development and Deployment Development tools for developing components NetBeans (Oracle) Eclipse (eclipse.org ) Deployment tools for configuring (customizing, naming) and packaging components NetBeans Admin console 8 8

Application Servers An application server Run time environment for component-based applications Applications are deployed and run on an application server Provides containers and services for applications made of components. Services: naming, connectivity, persistence, transactions, etc. Provides services for clients Downloadable clients (HTML) Some examples: GlassFish (Oracle) Tomcat (Apache) 9 9

Java Platform, Enterprise Edition (Java EE) http://www.oracle.com/technetwork/java/javaee/overview/index.html 10

Some Useful Links Java Platform, Enterprise Edition (Java EE) http://www.oracle.com/technetwork/java/javaee/overview/inde x.html Java EE Training & Tutorials http://www.oracle.com/technetwork/java/javaee/documentation /index.html The Java EE 6 Tutorial: http://download.oracle.com/javaee/6/tutorial/doc/ Java developer connection at http://www.oracle.com/technetwork/index.html 11

Multi-Tiered Java EE Applications Java EE Application Java EE Application Application Client Client Dynamic HTML HTML pages pages Client tier Client Machine Servlets Servlets JSF JSF Web tier Enterprise Beans Beans Enterprise Beans Beans Business tier Application Server Machine JPA JPA Entities Entities JPA JPA Entities Entities Integration tier Database(s) Database(s) Resource tier DBMS Machine 12

The Java EE Technologies Four groups: Enterprise Application Technologies Web Application Technologies Management and Security Technologies Web Services Technologies 13

Enterprise Application Technologies Enterprise JavaBeans (EJB) EJBs are the standard building blocks for corporate server applications. J2EE Connector Architecture An architecture for connecting the J2EE platform to heterogeneous Enterprise Information Systems. Java Message Service API (JMS) A specification of an API for enterprise messaging services. To create, send, receive, and read messages. Java Persistence API (JPA) Provides a POJO (Plain Old Java Object) persistence model for objectrelational mapping. Developed and use for EJB, but can be used directly. Java Transaction API (JTA) An abstract API for resource managers and transactional applications. Also used in writing JDBC drivers, EJB containers and hosts. JavaMail A set of abstract classes that models a mail system. 14

Web Application Technologies Java Servlets An API for extending the functionality of a web server. Java classes that process requests and construct responses, usually for HTML pages Replaces CGI Provides a gateway between Web clients and EJBs JavaServer Faces (JSF) An API for representing UI components (dynamic HTML) and managing their state; handling events from components; server-side data validation and conversion. JavaServer Pages (JSP) Text-based documents that are compiled into servlets and define how dynamic content can be added to static content in HTML or other markups. JavaServer Pages Standard Tag Library (JSTL) Encapsulates core functionality common to many JSP applications, e.g. iterator and conditional tags for handling flow control, tags for manipulating XML documents, internationalization tags, tags for accessing databases using SQL, and commonly used functions. 15

Web Services Technologies Java API for RESTful Web Services (JAX-RS) Java API for XML-Based Web Services (JAX-WS) Replaces JAX-RPC Java Architecture for XML Binding (JAXB) Provides a convenient way to bind an XML schema to a representation in Java code. SOAP with Attachments API for Java (SAAJ) Provides a standard way to send XML documents over the Internet from the Java platform. Streaming API for XML Streaming Java-based, event-driven, pull-parsing API for reading and writing XML documents. Web Service Metadata for the Java Platform 16

Java Servlet javax.servlet Servlet Home page: http://www.oracle.com/technetwork/java/index-jsp-135475.html 17

Java Servlet, Content Introduction Life Cycle Request Handling Thread Safety Our First Servlet Request Response Sessions Filters Listeners Servlet Context 18

Introduction A Servlet is program running on a web server. Used mainly as controller in web applications Receives HTTP requests and directs the request to the model component that can handle it. The controller Servlet is part of a framework (e.g. JSF, Struts) and normally not written by application developer. Can also be used to generate HTTP response. Mainly pages without text, e.g. images. 19

Introduction, Cont'd Servlets live inside a framework, the servlet container. Have no main method, only called by the container. 20

Life Cycle 1. The class is loaded into the Java VM. 2. An object is instantiated. 3. The servlet's init() method is called. 4. Each HTTP call is directed to the service method, who's default implementation will call the doget or dopost method (depending on the HTTP method). 5. If the servlet is garbage collected, its destroy method is called before garbage collection. 21

Request Handling What happens when a HTTP request is received? 1.The container creates new objects of the class HttpServletRequest representing the HTTP request and HttpServletResponse representing the HTTP response. 2.The container interprets the URL and decides which servlet to call. 22

Request Handling (cont) 3.The container creates a new thread and use it to call the servlet's service method, passing the objects created above. 4.The service method decides if doget or dopost shall be called, and calls that method. 5.That method uses the request object to get information about the HTTP request and the response object to create the HTTP response. 23

Request Handling (cont) 6.The container sends the HTTP response and discards the request and response objects. 24

Thread Safety Each request to the same servlet is executed in a separate thread but uses the same servlet instance. Instance variables in the servlet, and objects called by the servlet, are not thread safe. Avoid such fields that are not final! Try not to use synchronized since it will reduce performance. 25

Our First Servlet package helloworld; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; @WebServlet("/helloworld") public class HelloServlet extends HttpServlet { 26

Our First Servlet, Cont'd } @Override protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { out.println("<html>"); out.println("<head>"); out.println("<title>helloservlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>never EVER WRITE HTML IN A SERVLET</h1>"); out.println("</body>"); out.println("</html>"); } finally { out.close(); } } 27

Our First Servlet (cont) The WebServlet annotation specifies the servlet's URL. All servlets should inherit javax.servlet.http.httpservlet. An HTTP get request will result in a call to the doget method. All that is written to the stream returned by response.getwriter() will be sent to the browser by the container. 28

Never write HTML in a servlet!! Bad cohesion since the servlet would handle both input, output and probably also act as controller. Bad cohesion to mix languages (Java and HTML). Difficult to maintain since there might be different developers for Java and HTML. Very messy with all line breaks in strings. Impossible to use HTML editors JSF is designed for this and contains many helpful features. 29

Request Instances of the javax.servlet.http.httpservletrequest class are used to represent HTTP requests sent to the servlet. Passed to doget/dopost. 30

Request, Cont'd HttpServletRequest can be used to: Get HTTP parameters. Store and read Java objects (attributes). Get the URL of the request. Get information about the client like ip address or browser version. Get HTTP headers. Get cookies. Get session related data. 31

Request, Cont'd When the following form is submitted there will be three HTTP parameters, email, name and action. <form action="myservlet" method="post"> <input type="text" name="email"/> <input type="text" name="name"/> <input type="submit" value="action"/> </form> 32

Request, Cont'd These parameters can be read like this in a servlet: public void dopost(httpservletrequest req, HttpServletResponse resp) { } String email = request.getparameter("email"); String name = request.getparameter("name"); String action = request.getparameter("action"); 33

Request, Cont'd Any Java object can be used as an attribute. Attributes are both stored and read by servlets. Used to pass objects from one servlet to another when requests are forwarded. The getattribute/setattribute methods in HttpServletRequest are used for this. 34

Response Instances of the javax.servlet.http.httpservletresponse class are used to represent HTTP answers from the servlet. Passed to doget/dopost. 35

Sessions HTTP is stateless, sessions are used to introduce state. A client is identified with a cookie or some extension to the url (url rewriting). Some data on the server is associated with the session. 36

Sessions, Cont'd The method request.getsession is used to create a session. The method session.invalidate is used to destroy a session. It is a good idea to set a time out after which a session is destroyed. 37

Sessions, Cont'd Data is stored in the session object with the setattribute method and read with getattribute. Data in the session object is NOT thread safe since the same session is shared between all windows of the same browser on the same computer. Avoid instance variables in the session object and in objects stored as attributes in the session object. Try not to use synchronized since it will reduce performance. 38

Filters A web resource can be filtered by a chain of filters in a specific order specified on deployment. A filter is an object that can transform the header and content (or both) of a request or response: Query the request and act accordingly; Block the request-and-response pair from passing any further; Modify the request headers and data; Modify the response headers and data. Lecture 10: Overview of Java EE; JNDI; Servlets 39

Filters, Cont'd A filter class is defined by implementing the Filter interface and providing the @WebFilter annotation as shown below. @WebFilter("/*") public class MyFilter implements Filter The dofilter method is called before and after a resource processing any URL that matches the URL pattern specified in the @WebFilter annotation. 40

Listeners Define listener classes of listeners that will receive and handle life-cycle events issued by the Web container (Web context or session or request). For example, a Web context listener, often used to initialize singletons used by servlets. @WebListener public final class ContextListener implements ServletContextListener { private ServletContext context = null; public void contextinitialized(servletcontextevent event) { context = event.getservletcontext(); try { BookDAO bookdb = new BookDAO(); context.setattribute("bookdb", bookdb); } catch (Exception ex) { e.printstacktrace();} } } public void contextdestroyed(servletcontextevent event) { context = event.getservletcontext(); BookDAO bookdb = (BookDAO) context.getattribute("bookdb"); bookdb.remove(); context.removeattribute("bookdb"); } 41

Listeners, Cont'd Source Event Listener Interface Web context Initialization and destruction javax.servlet. ServletContextListener Attribute added, removed, or replaced javax.servlet. ServletContextAttributeListener Session Creation, invalidation, activation, passivation, and timeout javax.servlet.http. HttpSessionListener, javax.servlet.http. HttpSessionActivationListener, Request Attribute added, removed, or replaced A servlet request has started being processed by web components javax.servlet.http. HttpSessionAttributeListener javax.servlet. ServletRequestListener Attribute added, removed, or replaced javax.servlet. ServletRequestAttributeListener 42

Accessing the Web Context The context in which web components execute, i.e. the web container To get the context, call the getservletcontext method on the servlet. The context object implements the ServletContext interface. The web context provides methods for accessing: Initialization parameters, Resources associated with the web context, Attributes, Logging capabilities. For example, retrieving an attribute set by a Context listener, see slide 41: public class CatalogServlet extends HttpServlet { private BookDAO bookdb; public void init() throws ServletException { bookdb = (BookDAO)getServletContext().getAttribute("bookDB"); if (bookdb == null) throw new UnavailableException("Couldn't get database."); } } 43