| |
| |
Introduction | |
| |
| |
Who Should Read This Book | |
| |
| |
Conventions | |
| |
| |
About the Web Site | |
| |
| |
Acknowledgments | |
| |
| |
| |
| |
| |
| |
Using and Deploying Web Applications | |
| |
| |
| |
Purpose of Web Applications | |
| |
| |
| |
Structure of Web Applications | |
| |
| |
| |
Registering Web Applications with the Server | |
| |
| |
| |
Development and Deployment Strategies | |
| |
| |
| |
The Art of War: Bundling Web | |
| |
| |
| |
Building a Simple Web Application | |
| |
| |
| |
Sharing Data Among Web Applications | |
| |
| |
| |
Controlling Web Application Behavior with Web.XML | |
| |
| |
| |
Purpose of the Deployment Descriptor | |
| |
| |
| |
Defining the Header and the Root Element | |
| |
| |
| |
The Elements of web.xml | |
| |
| |
| |
Assigning Names and Custom URLs | |
| |
| |
| |
Disabling the Invoker Servlet | |
| |
| |
| |
Initializing and Preloading Servlets and JSP Pages | |
| |
| |
| |
Declaring Filters | |
| |
| |
| |
Specifying Welcome Pages | |
| |
| |
| |
Designating Pages to Handle Errors | |
| |
| |
| |
Providing Security | |
| |
| |
| |
Controlling Session Timeouts | |
| |
| |
| |
Documenting Web Applications | |
| |
| |
| |
Associating Files with MIME Types | |
| |
| |
| |
Configuring JSP Pages | |
| |
| |
| |
Configuring Character Encoding | |
| |
| |
| |
Designating Application Event Listeners | |
| |
| |
| |
Developing for the Clustered Environment | |
| |
| |
| |
J2EE Elements | |
| |
| |
| |
Declarative Security | |
| |
| |
| |
Form-Based Authentication | |
| |
| |
| |
Example: Form-Based Authentication | |
| |
| |
| |
Basic Authentication | |
| |
| |
| |
Example: Basic Authentication | |
| |
| |
| |
Configuring Tomcat to Use SSL | |
| |
| |
| |
WebClient: Talking to Web Servers Interactively | |
| |
| |
| |
Signing a Server Certificate | |
| |
| |
| |
Programmatic Security | |
| |
| |
| |
Combining Container-Managed and Programmatic Security | |
| |
| |
| |
Example: Combining Container-Managed and Programmatic Security | |
| |
| |
| |
Handling All Security Programmatically | |
| |
| |
| |
Example: Handling All Security Programmatically | |
| |
| |
| |
Using Programmatic Security with SSL | |
| |
| |
| |
Example: Programmatic Security and SSL | |
| |
| |
| |
Servlet and JSP Filters | |
| |
| |
| |
Creating Basic Filters | |
| |
| |
| |
Example: A Reporting Filter | |
| |
| |
| |
Accessing the Servlet Context from Filters | |
| |
| |
| |
Example: A Logging Filter | |
| |
| |
| |
Using Filter Initialization Parameters | |
| |
| |
| |
Example: An Access Time Filter | |
| |
| |
| |
Blocking the Response | |
| |
| |
| |
Example: A Prohibited-Site Filter | |
| |
| |
| |
Modifying the Response | |
| |
| |
| |
Example: A Replacement Filter | |
| |
| |
| |
Example: A Compression Filter | |
| |
| |
| |
Configuring Filters to Work with RequestDispatcher | |
| |
| |
| |
Example: Plugging a Potential Security Hole | |
| |
| |
| |
The Complete Filter Deployment Descriptor | |
| |
| |
| |
The Application Events Framework | |
| |
| |
| |
Monitoring Creation and Destruction of the Servlet Context | |
| |
| |
| |
Example: Initializing Commonly Used Data | |
| |
| |
| |
Detecting Changes in Servlet Context Attributes | |
| |
| |
| |
Example: Monitoring Changes to Commonly Used Data | |
| |
| |
| |
Packaging Listeners with Tag Libraries | |
| |
| |
| |
Example: Packaging the Company Name Listeners | |
| |
| |
| |
Recognizing Session Creation and Destruction | |
| |
| |
| |
Example: A Listener That Counts Sessions | |
| |
| |
| |
Watching for Changes in Session Attributes | |
| |
| |
| |
Example: Monitoring Yacht Orders | |
| |
| |
| |
Identifying Servlet Request Initialization and Destruction | |
| |
| |
| |
Example: Calculating Server Request Load | |
| |
| |
| |
Watching Servlet Request for Attribute Changes | |
| |
| |
| |
Example: Stopping Request Frequency Collection | |
| |
| |
| |
Using Multiple Cooperating Listeners | |
| |
| |
| |
The Complete Events Deployment Descriptor | |
| |
| |
| |
Tag Libraries: The Basics | |
| |
| |
| |
Tag Library Components | |
| |
| |
| |
Example: Simple Prime Tag | |
| |
| |
| |
Assigning Attributes to Tags | |
| |
| |
| |
Example: Prime Tag with Variable Length | |
| |
| |
| |
Including Tag Body in the Tag Output | |
| |
| |
| |
Example: Heading Tag | |
| |
| |
| |
Example: Debug Tag | |
| |
| |
| |
Creating Tag Files | |
| |
| |
| |
Example: Simple Prime Tag Using Tag | |