Web and Application Server Concepts
Web Application Design
Model-View-Controller
WebSphere Application Server Platforms
URLs, HTTP and SSL
HTTP Requests and Responses
Web Server and Application Server Roles
Request Processing
J2EE Architecture Overview
Enterprise Application Overview and Development Cycle
J2EE Architecture and Containers
Applet, Servlet and JSP Overviews
JDBC, JNDI and JTA
EJB, JMS and RMI Over IIOP
JavaMail, JAF, JAAS and JACC
XML and JAXP
New in J2EE 1.4
Web Services Support: JAX-RPC, SAAJ, Web Services for J2EE and JAXR
J2EE Connector, Management and Deployment
Development Roles and Deployment Descriptors
Introduction to Rational Application Developer
Workbench Features
What’s New
Workspaces and Perspectives
Enabling Roles and Capabilities
Creating Projects and Setting Project Properties
Building Projects
Adding Application Components
Using Editors and Views
View Toolbars and Fast Views
Customizing Perspectives and Creating User Defined Perspectives
Navigating the Workspace and Using Bookmarks
Working with the Tasks and Search Views
Using Working Sets and Local History
Getting Help and Using Cheat Sheets
Servlet Basics
What are Servlets and Why Use Them?
Web Container Responsibilities
Servlet Lifecycle Methods
Servlet Invocation
HttpServlet
Multithreading Issues
Registering Servlets by Name
Handling Requests and Responses
Response Content Methods
Reading a Post
Scope Attributes
Passing Data Between Servlets
What are Filters and Servlet Event Listeners?
Application Assembly and Packaging
J2EE Deployable Units
Assembly Process
Packaging Checklist
Creating Enterprise Application Projects
Importing Resources
Adding J2EE Modules and Utility JARs
JAR Dependency Editor
Using the Application Editor
Deployment Descriptor Elements (EJB, Web, Connector, Client and Application)
IBM Extensions and Bindings
Exporting Resources
RAD
Using the Web Perspective
Creating Web Projects and Specifying
Project Configurations and Facets
Annotation-based Programming
Web Project Structure and Default Files
Creating Servlets, Filters and Listeners
Using the Properties View
Editing the Web Deployment Descriptor
Defining IBM Extensions and Bindings
RAD
Server Tools
New Features
Test Environments
Server Types and Resources
Defining a Server
Running Applications on a Server
Defining the Target Server
Servers View and Actions
Editing the Server Configuration for WebSphere V6 and V6.1
Embedding Deployment Information in an Application
Reloading Resources Running on the Server
WebSphere Administration Command Assist
WebSphere Profiles
Servlet Programming
ServletRequest and ServletResponse Interfaces
HTTPServletRequest and HTTPServletResponse Methods
Retrieving the Request URI
Response Buffering
Accessing the ServletContext Object
Retrieving Context Initialization Parameters
The RequestDispatcher Interface
Forwards and Includes
Internationalization
JSP Basics
What are JavaServer Pages and Why Use Them?
JSP Translation and Execution
JSP Elements
Standard Actions: useBean, setProperty, getProperty, include, forward and param
JSP and JavaBean Interaction
Scope Attributes
Calling JSPs from Servlets
Relative URLs
Filters
The Filter Interface
Filter Deployment and Lifecycle
Performing Filtering Tasks
Filter Chain Invocation
Wrapping Requests and Responses
Accessing the Filter Configuration Object
Implementing the Destroy() Method
Using Cookies and Sessions to Manage Application Data
The HttpSession Interface
Managing Session Data
Session Tracking Mechanisms
Sessions at Runtime: Client & Server
Invalidating a Session
The Serializable Interface
HttpSession Thread Safety and Events
Sending and Retrieving Cookies
Cookie Attributes
Proper Usage of Cookies
Distributable Web Applications
Servlet Event Listeners
Implementing and Deploying Listeners
Implementing the ServletContextListener Interface
The ServletContextAttributeListener Interface
Responding to HttpSessionEvents
The HttpSessionAttributeListener and ServletRequestAttributeListener Interfaces
Session Activation and Binding Listeners
Receiving ServletRequest Notifications
Thread Considerations
Design Considerations
Controlling Application Flow
Web Application Design
Controller Servlets
Site Design
Handling Responses and Managing State
Handling Errors and Invalid Transitions
Controlling Page Caching
HTTP Headers
Memento Design
JSP Tag Extensions
Tag Extension Features
Tag Types: Simple and Classic
Classic Tag Handlers: Tag, IterationTag and BodyTag
Classic Tag Handler Lifecycles
Convenience Classes: TagSupport and BodyTagSupport
The TryCatchFinally and DynamicAttributes Interfaces
Defining SimpleTag Handlers
Simple Tag Handler Lifecycle
The SimpleTagSupport and TagAdapter Classes
Packaging Tag Libraries and Defining Tag Library Descriptors
Referencing Tag Libraries in the Web Deployment Descriptor
Using Custom Tags in a JSP
Appendix A. J2EE Design Patterns
What Are Design Patterns and Why Use Them?
Composite View, Front Controller, Intercepting Filter and View Helper Patterns
Transfer Object, Session Façade, Business Delegate and Service Locator Patterns
Data Access Object, Fast-Lane Reader and Value List Handler Patterns
Composite Entity and Factory Design Patterns
Putting It All Together
Appendix B. XML Concepts
XML Benefits and Features
Document Structure and Components
Elements and Attributes
Names and Name Tokens
CDATA, Entities and Entity References
XML Validation: DTDs and Schemas
Namespaces
XML Parsers
JAXP, SAX, DOM and JDOM APIs
XSL and XSLT