Chapter 1. Overview of Java EE Web Applications
- The World Wide Web
- HTTP
- HTML and XML
- CSS
- Dynamic Web Applications
- The Java EE Platform
- Java EE Servers and Portability
- Servlets
- JavaServer Pages
- JSTL
- Web Archives and Enterprise Archives
- Model/View/Controller
- Forms
- Sessions
- Context and Lifecycle
- Databases
- Security
- Filters
- JavaServer Faces
Chapter 2. Servlets
- The HTTP Message Model
- The Servlets API "Kernel"
- HttpServlet
- Request and Response Objects
- Mapping URLs
- Attributes and Scopes
- Forwarding and Redirecting
Chapter 3. JavaServer Pages
- Dynamic Web Pages
- Relationship to Servlets
- Directives
- The Unified Expression Language
- Page Scope
- Implicit Objects
- <jsp:useBean> and "Model 1"
- MVC and "Model 2"
- JSP Documents
Chapter 4. Working with Forms
- HTML Forms
- Submit Method: GET vs. POST
- Reading Single-Value Components
- Reading Multi-Value Components
- Reading Button Input
- Input Validation
Chapter 5. Sessions
- Sessions over HTTP
- HttpSession
- Session Scope
- Session Pitfalls
Chapter 6. The JSP Standard Tag Library
- Custom Tags
- The JSTL Libraries
- The Core Library
- Iterating Over Collections
- The Formatting Library
- Formatting Dates and Numbers
- Working with Maps
- Conditionals
- Loops
- Variables
- Importing Documents
Chapter 7. Custom Tags
- Custom Tag Libraries
- Tag Library Architecture
- Implementing in Java or JSP
- Correct Use of Scopes
- Invoking Presentation Logic
- Reusing Presentation Fragments
- Classic Tag Handlers
- Simple Tag Handlers
- Tag Files
Chapter 8. Context and Lifecycle
- Containers and Components
- Context and Lifecycle Interfaces
- Initialization and Context Parameters
- Loading Resources
- Lifecycle Methods
- Lifecycle Annotations
- Context Listeners
- JNDI and the Component Environment
- Dependency Injection
Chapter 9. Working with Databases
- Persistence Challenges
- Persistence Strategies
- JDBC
- DriverManager
- DataSource
- Data Access Objects
- JNDI Quirks and Portability Issues
- JPA
- Entity Annotations
- Entity Managers
- Persistence Units
- Working with Persistent Data
- Processing Tables
- Limiting Query Scope
Chapter 10. Filters
- Servlet Filters
- Uses for Filters
- Implementation
- Deployment
- Configuration and Context
Chapter 11. Security
- Threats to Enterprise IT
- Web Applications as Prime Targets
- Container Services
- Authentication for Web Applications
- Authorization
- HTTP BASIC Authentication
- HTTP DIGEST Authentication
- Declaring Security Constraints
- Abstract Roles, Concrete Realms
- Configuring User Realms
- Custom Error Pages
- Frustrations with BASIC and DIGEST
- Doing It Yourself
- FORM Authentication
- Programmatic Security
- Beyond Container-Based Security
- OWASP and the Top 10
Chapter 12. Dependency Injection
- Java EE 5 Dependency Injection
- Contexts and Dependency Injection
- CDI Configuration
- What Can Be Injected
- Producers and Disposers
- Qualifiers
- Named Beans
- Scopes
- Limitations and Pitfalls
- Working with Persistent Data
Chapter 13. The Web Socket API
- Ajax vs. Traditional Web Applications
- Partial Requests and Page Updates
- Pushing Messages
- Web Sockets
- The Java API for WebSocket
- Programmatic and Annotated Endpoints
- Client Endpoints
- Callback Methods
- Broadcasting
- Communicating with Servlets
- Path Parameters
- Pitfalls
- Using CDI
Appendix A. Tools and Utilities
System Requirements
Hardware – minimal: Dual-core 1.8 GHz, 4 gig RAM, 10 gig disk space.
Hardware – recommended: Dual-core 2.8 GHz, 8 gig RAM, 10 gig disk space.
Operating system: Tested on Windows 7/8, Mac OS 10.5.2. Course software should be viable on all systems which support a Java SE 7 Developer's Kit.
Network and Security: Limited privileges required
Software: All free downloadable tools.