Objectives

  • Design and build robust and maintainable web applications
  • Create dynamic HTML content with Servlets and Java ServerPages, using the JSP Standard Tag Library (JSTL)
  • Make Servlets and JSP work together cleanly
  • Use JSTL and other Custom Tag Libraries to separate Java and HTML code
  • Access databases with JDBC and the JPA (Java Persistence API)
  • Structure a clean data access layer.
  • Gain a high level understanding of REST services and JAX-RS

Duration

Five days

Outline for Developing Java EE Web Applications (JEE6/JEE7), plus JPA and REST

Session 1: Java EE Introduction

  • Java EE Overview and Technologies
  • JEE Architecture Choices
  • Java Web App Introduction

Session 2: Servlet Basics

  • Servlet Basics and Capabilities
  • Basics of Writing a Servlet
  • HTML Forms Review
  • HTTP Review: Request-response, headers, GET, POST
  • Overview: How Servlets Work
  • Servlet Lifecycle and API - Servlet, HttpServlet, @Webservlet
  • Requests and Responses - HttpServletRequest and HttpServletResponse
  • Accessing Parameters
  • web.xml

Session 3: Additional Servlet Capabilities

  • Working with HttpServletResponse (Errors, Headers, MIME types)
  • Initialization
  • Overview
  • Using ServletConfig and ServletContext
  • Init Parameters - Servlet and Web App
  • Error Handling: Error Pages and Their Configuration

Session 4: JavaServer Pages

  • Basics and Overview
  • JSP architecture
  • JSP tags and JSP expressions
  • Fixed Template Data
  • Lifecycle of a JSP
  • Model View Controller (MVC)
  • Overview
  • Java EE Model 2 Architecture
  • Servlets as Controllers, RequestDispatcher, Forwarding and Including
  • Data Sharing in a Web App
  • Object scopes or "buckets"
  • Using JavaBeans to Hold Data
  • Using the Scope Objects - get/set/remove Attributes
  • Request, application, session and page scope
  • JSP Expression Language (EL) and Data Access
  • JSP EL Overview
  • JSP Expressions, and Accessing Data
  • Predefined JSP EL implicit objects (pageContext, param, header, scope objects)
  • pageContext in Detail
  • jsp:include, jsp:forward, the page Directive
  • JSP Error Pages

Session 5: Using Custom Tags

  • Custom tags overview
  • Tag Libraries Overview
  • taglib Directive - Using a Tag Library
  • JSTL
  • Overview
  • c:out, c:forEach
  • c:url, c:param
  • More about JSTL
  • Other Useful Core Tags< - c:if, c:choose
  • Formatting: formatNumber, formatDate, Resource Bundles

Session 6: HTTP Session Tracking

  • HTTP and Client State
  • Cookies - Overview, Servlet Access, Usage, Issues
  • Sessions
  • Servlet/JSP Session Support, HttpSession
  • Using Sessions - Putting Data in, Retrieving Data From
  • How Sessions Work

Session 7: Web Security

  • JEE Security Overview
  • Role Based Security
  • Declarative Security
  • Web Authentication - Basic, Form-Based, Digest, HTTPS Client
  • Using Basic Authentication
  • Using Form-Based Authentication
  • Programmatic Security - HttpServletRequest, Retrieving Roles

Session 8: Additional Servlet Capabilities

  • Custom Tags Using Tag Files - Overview, Writing and Using Tag Files, Tag Attributes
  • Servlet Filter overview - Example and lifecycle
  • WebSocket Overview

Session 9: JDBC Introduction and Architecture

  • Relational Database and JDBC Overview
  • JDBC Architecture, JDBC API Overview
  • Connecting to a database
  • Working with JDBC - Executing Statements and Processing Results

Session 10: Resource Integration

  • DataSources and Connection/Statement Pooling
  • Resource Injection, @Resource, and JNDI
  • CDI and Dependency Injection

Session 11: Introduction to JPA

  • JPA Architecture and Programming View
  • Entity Classes and Annotations
  • Mapping an Entity Class
  • EntityManagerFactory and EntityManager
  • Working with JPA (Find by primary key and inserts)
  • Integrating JPA with the Web Tier

Session 12: JPA Advanced Topics

  • Entity Lifecycle
  • Relationships
  • Issues with Relationships (Lazy Load and Web Apps)

Session 13: Introduction to REST

  • Overview and Principles
  • REST Characteristics
  • Resources and Operations
  • REST Principles
  • Requests and Responses
  • REST APIs
  • URI Templates
  • GET, POST, PUT, DELETE
  • Safe and Idempotent Methods

Session 14: Introduction to JAX-RS

  • APIs and Implementations
  • JAX-RS Overview, Annotations
  • JAX-RS Implementations
  • Runtime Environment
  • Application Server, Servlet-Only Container
  • Architectural and Implementation Perspectives
  • Configuring the Application
  • Applications, Resources, and Providers
  • JAX-RS Applications
  • Resource Classes and @Path
  • Provider Classes and @Provider
  • Default Lifecycles
  • The Application Class and rest-path
  • Ajax-JavaScript Clients
  • Overview
  • Classic vs. Ajax Interactions
  • Working with Ajax-JavaScript