• Copyright
  • Dedication
  • Preface
    • Organization
    • Conventions Used in This Book
    • Comments and Questions
    • Acknowledgments
  • Chapter 1. Introduction
    • A Brief History of the Web
    • What Are Java Servlets?
    • JavaServer Pages
    • JSP Model 1 and Model 2 Architectures
    • Why Is Model-View-Controller So Important?
    • What Is a Framework?
    • Creation of the Struts Framework
    • Alternatives to Struts
  • Chapter 2. Inside the Web Tier
    • An Architecture Overview
    • The HTTP Request/Response Phase
    • Struts and Scope
    • Using URL Parameters
    • Forward Versus Redirect
  • Chapter 3. Overview of the Struts Framework
    • A Banking Account Example
    • Looking at the Big Picture
    • Struts Controller Components
    • Struts Model Components
    • Struts View Components
    • Multiple Application Support
    • Summary
  • Chapter 4. Configuring Struts Applications
    • The Storefront Application
    • What Is a Web Application?
    • The Web Application Directory Structure
    • The Web Application Deployment Descriptor
    • Configuring the web.xml File for Struts
    • The Struts Configuration File
    • The org.apache.struts.config Package
    • The Digester Component
    • The Struts Console Tool
    • Reloading the Configuration Files
  • Chapter 5. Struts Controller Components
    • The Controller Mechanism
    • The Utilities Classes
  • Chapter 6. Struts Model Components
    • The "M" in MVC
    • What Is a Business Object?
    • Persistence
    • What Does Struts Offer for the Model?
    • Building the Storefront Model
  • Chapter 7. Struts View Components
    • What Is a View?
    • What Are ActionForms?
    • Using ActionErrors
    • Performing Presentation Validation
    • Using the DynaActionForm Class
    • Looking Ahead to JavaServer Faces
  • Chapter 8. JSP Custom Tag Libraries
    • Custom Tags Overview
    • Tag Libraries Included with Struts
    • Using JavaBeans with Struts Tags
    • Struts HTML Tags
    • Logic Tags
    • Bean Tags
    • Template Tags
    • Nested Tags
    • Other Useful Tag Libraries
    • The JSP Standard Tag Library (JSTL)
  • Chapter 9. Extending the Struts Framework
    • What Are Extension Points?
    • General Extension Points
    • Controller Extension Points
    • Extending View Components
    • Extending Model Components
    • Downsides to Extending the Framework
  • Chapter 10. Exception Handling
    • Java Exception Handling
    • System Versus Application Exceptions
    • Using Chained Exceptions
    • Exception Handling Provided by Struts
    • Tying Up the Loose Ends
    • Conclusion
  • Chapter 11. The Validator Framework
    • The Need for a Validation Framework
    • Installing and Configuring the Validator
    • Using an ActionForm with the Validator
    • Creating Your Own Validation Rules
    • The Validator and JSP Custom Tags
    • Internationalizing the Validation
    • Using the Validator Outside of Struts
  • Chapter 12. Internationalization and Struts
    • What Is Internationalization?
    • Support for I18N in Java
    • Internationalizing Your Struts Applications
    • Exception Handling and Internationalization
  • Chapter 13. Struts and Enterprise JavaBeans
    • Implementing the Storefront Service Using EJB
    • Interfacing Struts to EJB
    • Conclusion
  • Chapter 14. Using Tiles
    • Understanding Templates
    • Installing and Configuring Tiles
    • Overview of Tiles
    • The Tiles Tag Library
    • Using Definitions
    • Internationalization Support with Tiles
  • Chapter 15. Logging in a Struts Application
    • Logging in a Web Application
    • Using the Servlet Container for Logging
    • Jakarta Commons Logging
    • Using the log4j Package
    • Using Commons Logging in JSP Pages
    • The Performance Impact of log4j
    • Third-Party log4j Extensions
    • Java 1.4 Logging API
  • Chapter 16. Packaging Your Struts Application
    • To Package or Not to Package
    • Deciding How to Package Your Application
    • Packaging the Application as a WAR File
    • Building Your Struts Applications with Ant
    • Creating an Automated Build Environment
    • Restarting Your Server Remotely
  • Chapter 17. Addressing Performance
    • What Is Good Performance?
    • Performance Versus Load Testing
    • Performance- and Stress-Testing Tools
    • Testing the Storefront Application
    • Performance and Scalability Gotchas
  • Appendix A. Changes Since Struts 1.0
    • ActionServlet and RequestProcessor
    • Modifications to the Struts Action Class
    • Changes to web.xml and struts-config.xml
    • New Features of Struts 1.1
    • The Struts Validator
    • Change to Commons Logging
    • Removal of Admin Actions
    • Deprecation of the GenericDataSource
    • Dependency on Commons Projects
  • Appendix B. Downloading and Installing Struts
    • The Binary Versus Source Distributions
    • Tips on Installing Struts in Tomcat
    • Tips on Installing Struts in WebLogic
    • Tips on Installing Struts in WebSphere
    • Tips on Installing Struts in JRun
  • Appendix C. Resources
    • The Struts Mailing Lists
    • The Struts Resource Web Page
    • Validator Site
    • Tiles Site
    • Nested Tags Site
    • The Struts Console
    • Easy Struts Project
  • Colophon