Course Outline:
Lesson 1: JAVA EE Overview
· Java EE’s Place within Java
· Java EE – Distributed Multitier Applications
· Important J2EE/Java EE 5 APIs
· Commercial Java EE Products
· Common Commercial Java EE App Servers
· Enterprise Applications – The Three Pillars
· Persistent Storage
· Business Logic
· Presentation Logic
· Presentation Logic – Servlets
· Presentation Logic – JavaServer Pages
Lesson 2: JAVA EE Architecture
· Multitiered Architecture
· Web-Based Architecture
· Web-Based Architecture with EJB
· Swing Client Architecture with EJB
· Supporting Both Web Clients and Rich Clients
· Playing Server Games
· SOA – Service Oriented Architecture
· Java EE Roles
· What’s Next?
Lesson 3: How the Web Works
· Clients and Servers
· Client and Server Applications on the Web
· HTML – The Language of the Web
· Basic HTML Tags and a Basic HTML Page
· HTTP and Addressing
· Requests and Responses
· Browsing a Simple Web Page
· Java EE Web Applications
· Web Application Structure
Lesson 4: A Simple Servlet
· Servlets and Dynamic Content
· What are Servlets?
· How a Servlet Runs
· Advantages of Servlets
· Packages and Classes
· Creating a Servlet – The Simplest Way
· A Simple HTTP Servlet
· Declaring and Mapping Servlets
Lesson 5: HTML Forms and HTTP Review
· HTML Forms
· A Simple Search Form in HTML
· A Simple Form in the Browser
· HTTP Request and Response Details
· GET and POST Methods
· Request Parameters
Lesson 6: How Servlets Work
· Servlet Interface and Servlet Lifecycle
· Servlet Lifecycle – Initialization
· Servlet Lifecycle – The service() Method
· Important Types for Servlets
· Class Diagram for Servlet Types
· Class GenericServlet
· Requests and Responses
· Important ServletRequest/Response Methods
· Getting Data / Sending Responses
· Getting Data and Sending Response
· HTTP Servlets
· Class Diagram for HTTP Servlet Types
· Class HttpServlet
· HttpServletResponse
· More About web.xml
· Web.xmlElements
· Look at the JavaDoc
Lesson 7: Working with HTTP Servlet Response
· HTTP Responses – Status and Errors
· HttpServletResponse Status/Error Methods
· HTTP Response Headers
· Setting Response Headers
· MIME Types
· Specifying a MIME Type
Lesson 8: Initialization
· Initialization Overview
· The ServletConfig Interface
· The ServletContext Interface
· Declaring and Mapping Servlets
· Servlet Init Parameters
· Retrieving Initialization Parameters
· Web App Init Parameters
· A Problem with SearchServlet
· Null and Empty String Parameters
Lesson 9: Error Handling
· Specifying Error Pages
· Error Page Configuration
· Error Handling
Lesson 10: JAVA Server Pages (JSP)
· Shortcomings of Servlets
· What is a JSP?
· A Very Simple JSP – simple.jsp
· The Resulting Browser Output
· JSPs Look Like HTML
· JSP Expressions
· Comments
· JSPs are Really Servlets
· Lifecycle of a JSP
· The Generated Servlet
· Generated Code Fragment for simple.jsp
Lesson 11: Model View Controller (MVC) Architecture
· Servlet and JSP architecture
· Model 1 Architecture
· Model View Controller (MVC)
· Servlets as the Controller
· JSP as the View
· JavaBeans as the Glue and the Model
Lesson 12: Servlets as Controllers
· RequestDispatcher
· Servlets as Controller
· Forwarding to a Resource
· Including Output of Another Resource
· RequestDispatcher Paths
Lesson 13: Data Sharing Among Servlets and JSPS
· Object Buckets or Scopes
· Using the Scopes
· JSPs and JavaBeans
· Putting Data on a Scope
· Careful – Servlets are Multi-Threaded
· Predefined JSP Variables – Implicit Objects
· <jsp;useBean>
· <jsp:useBean> Details
· The Other Scopes
· JavaBean Properties
· <jsp:getProperty>
· Jsp:useBean Creates Page Scope References · JSP Mixes Dynamic and Template Data
· JSP Directives
· The include Directive
· <jsp:include> Action
Lesson 14: Custom Tag Libraries Overview
· Issues with Vanilla JSP
· Sun’s Solution – Custom Tags
· Custom Tags
· Custom Tag Overview
· Tag Libraries
· Using a Tag Library in a Web Application
· Taglib Definition – How it Works
· More About URIs and Prefixes
Lesson 15: JSP Standard Tag Library (JSTL)
· The JSTL
· A Brief Word about JSTL & Jakarta Taglibs
· Introduction to Using JSTL Tags
· Using the c:out Tag to Output Data
· JSTL Expression Language
· Data Objects and the JSTL EL
· Request Parameters and JSTL
· Using the c:out Tag and Bean Properties
· Iterating Over a Collection
· Using the c:forEach Tag for Iteration
· Using the c:url Tag for URLs
· Using the c:param Tag for URL Parameters
Lesson 16: HTTP Session Overview
· HTTP is a Stateless Protocol
· Online Shopping with a Stateless Protocol
· Storing Contextual Information
· Hidden Form Fields
Lesson 17: Cookies
· Cookie Details
· Accessing Cookies with the Servlet API
· Persistent Cookies and Session Cookies
· Cookie Usability Issues
Lesson 18: Sessions
· Servlet/JSP Sessions
· Using Sessions
· How Session Tracking Works
· Sessions and Cookies – How They Work
Lesson 19: Error Pages
· Servlet Exceptions and Error Pages
· The Implicit exception Object
· Exception Handling in a JSP
· web.xml – Declarative Exception Handling
· Server Logging
Lesson 20: JAVA Scriptlets
· Scriptlets
· Scriptlet Syntax
· How do Scriptlets Work?
· Generated Code Fragment for simple.jsp
· When to Use Scriptlets
· Declarations
Lesson 21: JSTL Actions
· JSTL Overview
· JSTL Tag Libraries at a Glance
· JSTL Expression Language (EL)
· JSP Expressions vs. JSTL EL
· The State of JSTL
· Custom Tag (Including JSTL) Architecture
· More About JSTL URIs
· JSTL Prefixes
· Core Actions
· Formatting Actions
· SQL Actions
· XML Actions
Lesson 22: JSTL Expression Language (EL)
· JSTL Expression Language (EL)
· EL and JSTL Action, Made for Each Other
· EL Syntax
· EL Identifiers
· EL Operators
· . and [] Operator Usage
· JSTL-EL Implicit Objects
· Implicit Object: pageContext
· JSTL-EL Literal Values
Lesson 23: Putting JSTL and EL in JSP
· Putting JSTL and EL in JSP
· Using <c:if>
· <c:if> Test Expressions
· <c:choose>
· More on <c:forEach>
· <c:set>
· <c:url>
· <fmt:formatDate>
· <fmt:formatNumber>
· JSTL-EL Resources
Lesson 24: JSP 2.0
· Expression Language (EL)
· Functions and the JSTL Function Library
· JSTL 1.1 Functions Library
· JSTL Function Library
· New EL Operator
· JSP Pages as XML Documents
· Improved Error Handling in JSP Pages
· Using ErrorData
· Creating Custom Tags
Lesson 25: JAVA EE Security Overview
· Security Requirements
· Java EE Security
· Web Tier Security in Java EE
· Transport Level Security with HTTPSSSL
Lesson 26: Declarative Security
· Declarative Security
· Roles
· Specifying Security Constraints
· Security Constraints – Deployment Descriptor
· Mapping Users to Roles
· Security – The Big Picture
Lesson 27: Web Authentication
· Authentication
· HTTP Basic Authentication
· HTTP Basic Authentication on the Browser
· Configuring Basic Authentication
· Basic Authentication Pros and Cons
· Form Based Authentication
· Using Form Based Authentication
· Form Based Authentication Pros and Cons
· Digest Authentication
· Digest Authentication Pros and Cons
· HTTPS Client Authentication
Lesson 28: Programmatic Security
· Programmatic Security
· Programmatic Security – HttpServletRequest
Lesson 29: Design Issues
· Design Issues
· Divide and Conquer
· Minimize Network Overhead
· Scalability – Clustering
· Sessions and Clustering
· Scalability – Separating Static Content
· Scalability – Java Virtual Machine
· Scalability – CPUs and 64 Bit Machines
· Maintainability – Write Your JSPs Well
· Use the Technology Wisely
· Use a Framework
Lesson 30: JAVA Server (JSF) Overview
· JavaServer Faces
· JSF Architecture
· JSF Capabilities
· JSF Componenets
· The UI Runs on the Server
· Event Handling
· Process Flow
· JSF Advantages
· JSF Disadvantages
Lesson 31: Servlet Filters
· Servlet Filter Overview
· What Can Filters Do
· Filter API
· Using Filters
· Filter Processing
· Filter Chain
· A Simple Filter
· Filter is Mapped in the web.xml File
· How A Filter can Modify a Request or Response
· The Way a Response Normally Works
· Manipulating the Response
· Wrapping the Response
Lesson 32: Relational Database and JDBC Overview
· The Power of Information
· Relational Database overview
· Relational Database Description
· Database Table Relationships
· Web-Based Architecture
· Database Access Wish List
· JDBC Overview
· JDBC Characteristics
· JDBC Specification and Packages
Lesson 33: JDBC Architecture and API
· JDBC Architecture
· The Fundamental JDBC API
· The DriverManager Class
· What is a JDBC Driver?
· Drivers Must be Loaded
· Naming Databases with URLs
Lesson 34: Database Connections
· Database Connections, Connection Interface
· Establishing a Database Connection
· The DatabaseMetaData Interface
· Database Exceptions – SQLExceptin
· Wrapped Database Exceptions – Illustrated
· Database Exceptions – SQLWarning
· Closing JDBC Objects
· try-catch May Not be Good Enough
· Using finally to Close JDBC Objects
Lesson 35: Data Access Objects and O-R Mappings
· Data Access Objects – Rationale
· Value Objects – Rationale
· Object-Relational (O-R) Mappings
· JavaTunes O-R Mapping
· Value Objects and JavaBeans
· Data Access Object – Illustrated
Lesson 36: Processing Database Data
· Creating Statements
· The Statement Interface
· The ResultSet Interface
· Extracting Data from a ResultSet
· SQL-Java Type Mappings
· Dealing with Result Set NULL Values
· Closing JDBC Objects – Revisited
· Using finally to Close JDBC Objects
· Prepared Statements
· Benefits of Prepared Statements
· Calling Database Stored Procedures
· The CallableStatement Interface
· Update Statements
· Transaction – Overview
· Controlling Transactions in JDBC
· Storing Dates
Lesson 37: JDBC Driver Types
· JDBC Driver Types
· Type 1 – JDBC-ODBC Bridge
· Type 2 – Native API, Part Java
· Type 4 – Native Protocol, Pure Java
· Type 3 – JDBC-Net, Pure Java
Lesson 38: JAVA Persistence API
· Other Database Access Technologies
· O-R Mapping Tools
· Java Persistence API Overview
· Entity Classes
Lesson 39: Advanced JDBC Features
· Advanced JDBC Features
· Batch Updates
· Methods for Performing Batch Updates
· Scrollable, Updatable Result Sets
· Result Set Scrollability Types
· Result Set Concurrency Types
· Getting Advanced Result Set Functionality
· Rowset Overview
· The RowSet Interface
· Rowset Implementation
· SQL3 User-Defined types (UDTs)
· Mapping a UDT to a Java Type
· BLOBs and CLOBs
· What is a Blob Object
· Getting the Actual BLOB Data
Lesson 40: System Design Choices
· User Action – JavaTunes and Catalog Search
· The Roles of “Client” and “Server”
· The Simple Approach – Illustrated
· The Simple Approach – Analysis
· Using a JSP for the View – Illustrated
· Using a Data Access Object – Illustrated
· A More Modular Approach – Analysis
· Using EJB – Illustrated
· Using EJB – Analysis
· Using Web Services – Illustrated
· Using Web Services – Analysis
Lesson 41: Database Access
· Java EE and JDBC
· Why DataSource?
· How do Clients get Access to a DataSource?
· JNDI – Java Naming and Directory Interface
· EJB Container Binds a Reference into JNDI
· Client Looks up Reference in JNDI
· JNDI Overview
· JNDI Name Tree
· JNDI Tree Structure
· JNDI in the Java EE Platform
· Defining a Resource Reference in web.xml
· The Context Interface
· Obtaining a DataSource by Lookup
· Mapping the ENC Name to the JNDI Name
· ENC and JNDI – Putting it all Together
· Connection Pooling
· Pooled Connections – Illustrated
· Getting a Pooled Connection – Illustrated
· Closing a Pooled Connection – Illustrated
· Connection Pooling Implementations
· Statement Pooling
· Statement Pooling – Illustrated
· Getting a Pooled Statement – Illustrated
· Closing a Pooled Statement – Illustrated
· Be Neat
Lesson 42: EJB Overview
· What is EJB
· EJB Goals
· Types of Enterprise JavaBeans
· Java Persistence API
· JPA Goals
· EJB and Java EE
· ENB in Java EE Architecture
· EJB Transaction Support
· EJB 3.0 Overview
· EJB 3.0 Goals
· Session Bean Usage
· Persistent Entity Usage
· MDB Usage
· Benefits of Using EJB
· Issues with EJB
Lesson 43: Web Services Overview
· Service Oriented Architecture )SOA)
· The Evolution of Computing
· SOA Concepts
· Some Advantages of SOA
· Some Issues with SOA
· Web Services Defined
· Value Proposition
· Web Services Defined
· TW-* Web Services Specifications
· The Web Services Stack
· Web Services Tacks
· Architectural Details
· SOAP Concepts
· WSDL Concepts
· Java Web Services (JWS) Standards
· Defining a Web Service
· Writing a JAX-WS Client
Lesson 44: JMS Overview
· What is Messaging?
· Loose Coupling
· When is Messaging Used?
· Two Messaging Models
· Publish/Subscribe – Illustrated
· More on Publish/Subscribe
· Point-to-Point – Illustrated
· More on Point-to-Point (P2P)
· Overview of JMS API
· What is Java Message Service?
· API Structure
· JMS Interfaces
· Administered Objects
· Administered Objects and JNDI – Illustrated
· Client Workflow
· Synchronous Queue Consumer Client
· Asynchronous Queue Consumer Client
· JMS Message Types
|