spiroit academy
Duration: - Price: -     Download this PDF

Advanced Java Programming

Students Will Learn:
  • How to write Session, Message-Driven and Entity Beans
  • EJB 3.0 Simplified APIs
  • EJB 3.0 Java Persistence API
  • EJB Security and Transaction Management
  • JAX-WS Web Services
  • Java EE Web Application Architecture
  • Developing Servlets & JSPs
  • Developing and Deploy JSP Tag Libraries

Course Description: This hands-on course provides participants with the knowledge and experience required to develop and deploy Enterprise JavaBeans, Web Services and robust Java EE (Java Enterprise Edition) web applications. The focus of the course is on building components that are deployed to the EJB Container and building web-enabled applications that employ Servlets, JavaServer Pages and Tag Libraries to exploit the services provided by the Java EE platform. This course covers architectural design issues as well as specific coding models for Java EE components, and is up to date with the latest Java EE 5, EJB 3, JAX-WS 2.1, JSP 2.1 and Servlet 2.5 specifications. Security, transaction management, inter-component communication and deployment issues are discussed in detail, with hands-on labs to solidify understanding.

Since coding and deployment files are standardized by the Java EE specifications, students may readily apply the skills learned in this class to write code for any compliant server, including Apache Tomcat, JBoss, WebSphere, Oracle, WebLogic and many others. Students will understand the role and architecture of the most important containers in the Java EE specification: the Web Container (which hosts HTML pages, Servlets and JSP Pages) and the EJB Container (which hosts Enterprise JavaBean components). Participants will learn how to use important Java EE services and protocols including JNDI, JDBC and JMS. Students will learn how to utilize ANT, a flexible and powerful XML-based build utility, to compile, deploy and execute stand-alone and enterprise Java applications. Comprehensive hands-on lab exercises reinforce instructor lectures and build direct competence in the topics presented throughout the course.

Course Prerequisites: Java SE 5 programming experience and an understanding of object-oriented design principles. Fundamental knowledge of XML is helpful but not required.

Advanced JAVA Programming

Introduction to Servlets
  • Servlet Architecture and Advantages
  • The Role of Servlets in Web Application Design
  • Servlet Runtime Environment
  • Servlet Lifecycle
Developing Servlets
  • Servlet Classes and Interfaces
  • Working with Request and Response objects
  • Processing GET and POST Requests from Web Clients
  • Retrieving Parameters from HTML Client Forms
  • Generating Dynamic HTML Responses
  • Initializing Servlets
  • Destroying and Freeing Resources in Servlets
  • Controlling Single and Multi-Threading in a Servlet
  • Deploying Servlets to a Web Application Server
  • Building the WAR File
  • The web.xml descriptor File
Using ANT
  • Understanding the ANT build file
  • Designing ANT Targets
  • Using ANT Standard Tasks
  • Using ANT Properties
  • Compiling and Executing Java Applications
  • Building WAR, EAR and JAR Deployment Files
Developing JavaServer Pages (JSPs)
  • Understanding JSP/Servlet Translation
  • Elements of JSP Syntax
  • JSP Page Directives
  • JSP Declarations
  • Displaying JSP Expressions
  • Writing Scriptlets
  • Deploying JSPs
  • Using JavaBeans in JSPs
  • JavaBean Architecture
  • Creating JavaBeans
  • Using JavaBeans in JSP Pages
  • XML-format JSP Documents
Writing Tag Handlers
  • Analyzing Tag Library Descriptor Files
  • Creating Tag Library Descriptor Tags
  • Using Tag Handler Methods to Generate Dynamic Web Content
  • Handling Tag Attributes and Attribute Validation
  • Processing Tag Body Content
  • Working with the TagExtraInfo Class
  • Developing and Deploying Tag Files
Developing Secure Web Applications
  • Understanding JAAS Concepts
  • Java EE Authentication and Authorization
  • Defining Security Roles
  • Declaring Security Constraints
  • Using Programmatic Security
  • Using Java SE Security Features
  • Encryption, Message Digests and Keys
Session Management and Communication Between Web Components
  • Storing Shared, Scoped Information
  • Java EE Session Management
  • Maintaining Sessions via URL Rewriting
  • Using Cookies
  • Using Hidden Form Fields to Track Session IDs
  • Using the HttpSession Interface
  • Transferring Control via Request Dispatching
  • Request Redirection
Accessing Databases with JDBC
  • Understanding the JDBC Connectivity Model
  • Accessing Data Sources through JNDI
  • Connecting to a Database
  • Executing SQL Queries and Updates
  • Processing Result Sets
  • Using Scrollable and Sensitive Result Sets
  • Working with ResultSetMetaData Classes
  • Utilizing Parameterized Statements
  • Calling Stored Procedures
  • Handling SQLExceptions
  • Controlling Transactions
  • Using Batch Updates
Object Serialization
  • Purpose of Serialization in the Java EE Framework
  • Creating Serializable Objects
  • Reading and Writing SerializableObjects
  • Controlling Serialization
Advanced Topics - Filters, Listeners and Resource Injection
  • Using Filters to process Requests and Responses
  • Controlling the Filter Chain
  • Writing Filters
  • Wrapping Requests and Responses
  • Writing and Deploying Listeners
  • Using Annotations in Servlet 2.5 Applications
  • Controlling Resource Injection
  • Using Special Resource Types
Using the Java Messaging Service (JMS)
  • Architecture of JMS
  • Using Classes and Interfaces in the JMS API
  • Developing a JMS Producer and Consumer
Introduction to Enterprise JavaBeans
  • Session Beans
  • Message-Driven Beans
  • Entity Beans
  • EJB Feature History
  • Writing EJBs
  • Annotations and EJB 3.0
  • Annotation Syntax
  • Annotation Placement
Stateless Session Beans
  • Stateless Session Bean Life Cycle
  • Writing a 2.1 Session Bean
  • The Remote Interface
  • The Remote Home Interface
  • Session Bean Implementation
  • Writing Lifecycle Methods
  • The Session Context
  • Packaging EJBs
  • EJB 2.1 Deployment Descriptors
  • Using a Session Bean
  • Client EJB Refs
  • EJB Remote Communication
  • Removing Bean References
EJB 2.1 Entity Beans
  • Persistence Mechanisms - BMP, CMP
  • Local Interfaces
  • Local and Local Home Interfaces
  • Entity Bean Implementation
  • Entity vs. Session Bean
  • An Entity Bean Client
  • Entity Bean Lifecycle Methods
  • Entity Bean Lifecycle
  • The Entity Context
  • Create / Remove
  • Load / Store
  • Passivation / Activation
  • Defining Primary Keys
Stateful Session Beans
  • Stateful Session Bean Life Cycle
  • Passivation/Activation
  • Time-Outs
JavaServer Pages (JSPs)
  • JSP Lifecycle
  • Elements of a JSP
  • Directives, Declarative, Scriptlets
  • Writing a JSP
  • Objects Available in a JSP
  • Repeated content in JSPs
  • Translation-Time and Request-Time Includes
  • Using JavaBeans in a JSP
  • Session Management
  • Mixing JSPs and Servlets
  • Installing and Using Tag Libraries
  • The JSP taglib Directive
  • The Tag Library Descriptor
EJB 3.0 Session Beans
  • Session Bean Annotations
  • Callback Annotations
  • Java EE 5 Dependency Injection
  • Injection Targets
  • Class-based Injection
EJB 3.0 Entities and the Java Persistence API
  • JPA Philosophy
  • EJB 2.1 CMP vs EJB 3.0 Entities
  • Open Source JPA Persistence Providers
  • Using JPA Overview
  • Persistence Units
  • persistence.xml
  • Managed Classes
Message Driven Beans
  • Message-Driven Bean Life Cycle
  • EJB 2.1 Message-Driven Bean
  • The Message-Driven Context
  • EJB 2.1 Deployment Descriptor
  • EJB 3.0 Message-Driven Bean
  • EJB 3.0 Annotations for MDBs
EJB 3.0 Entities and the Java Persistence API
  • JPA Philosophy
  • EJB 2.1 CMP vs EJB 3.0 Entities
  • Open Source JPA Persistence Providers
  • Using JPA Overview
  • Persistence Units
  • persistence.xml
  • Managed Classes
Container-Managed Persistence (CMP)
  • Lifecycle Methods and CMP
  • Persistent Properties
  • Deploying a CMP Entity Bean
  • CMP Entity Bean Deployment Descriptor
  • Container-Managed Relationships (CMR)
  • Implementing Finder Methods
  • Writing EJB-QL Statements
Using the JPA Entity Manager
  • EntityManager Methods
  • Synchronizing Entities
  • Detached Entities
Entity Classes
  • Object-Relational Mapping
  • Persistent Fields/Properties
  • Mapping Persistent Fields
  • Mapping Annotations
  • Primary Key
  • Subclassing Entities
  • Embedded Objects
  • Composite Primary Keys
  • Entity Relationships
  • Relationship Annotations
The Query Interface
  • Java Persistence Query Language
  • Named Queries
  • Query Input Parameters
  • Native SQL Queries
JPA Optimization Features
  • Optimistic Locking
  • Lazy Fetching
  • Lifecycle Callbacks
The Java Transaction API (JTA)
  • Transaction Demarcation
  • Transaction Status
  • Bean-Managed Transactions
  • Container-Managed Transactions
  • EJB 2.1 Deployment Descriptor for CMT
  • EJB 3.0 Transaction Annotations
  • Voting to Roll Back
  • Transactions and Entity Beans
  • Transactions and JPA Entities
  • Transactions and Message-Driven Beans
  • Transactions and Stateful Session Beans
EJB Security
  • JAAS Concepts
  • Java Security
  • Java EE Authentication
  • Java EE Authorization
  • Role-Based Authorization for EJBs
  • Principal Propagation
  • Declaring Security Roles
  • Using Security Roles
  • Programmatic Security
  • Assigning Security Roles to a Bean
  • EJB 3.0 Security Annotations
  • Enterprise Security Strategies
EJB Advanced Topics
  • EJB Timer Service
  • Accessing the Timer Services
  • EJB 3.0 Timer Annotations
  • Interceptors
  • EJB 3.0 Interceptor Annotations
JAX-WS Web Services
  • Typical Web Services Scenario
  • Advantages and Issues in Web Services
  • Web Services Technologies: SOAP and WSDL
  • Web Services in Java EE and Java SE
  • "JAX" Specifications
  • Java Web Services Specifications
  • Writing a JAX-WS Web Service
  • The Service Implementation Bean
  • JAX-WS Deployment Descriptors
  • JAX-WS Client-Side Programming
  • JAX-WS Tools
  • RESTful Web Services
Introduction to Java EE Web Applications
  • Server-Side Application Development using Java EE
  • The Role of Java EE Containers, Components and Services
  • Using Web-Based Components in Application Design
  • Structure of Java EE Web Components
  • Deploying Web Applications
  • Java EE Web Container Services