| | Copyright |
| | Preface |
| | | What's in the Book |
| | | Audience |
| | | Organization |
| | | Conventions Used in This Book |
| | | Using Code Examples |
| | | Comments and Questions |
| | | Acknowledgments |
| | Chapter 1. Writing Servlets and JSPs |
| | | Introduction |
| | | Recipe 1.1. Writing a Servlet |
| | | Recipe 1.2. Writing a JSP |
| | | Recipe 1.3. Compiling a Servlet |
| | | Recipe 1.4. Packaging Servlets and JSPs |
| | | Recipe 1.5. Creating the Deployment Descriptor |
| | Chapter 2. Deploying Servlets and JSPs |
| | | Introduction |
| | | Recipe 2.1. Deploying an Individual Servlet on Tomcat |
| | | Recipe 2.2. Using a Context Element in Tomcat'sserver.xml |
| | | Recipe 2.3. Deploying an Individual Servlet on WebLogic |
| | | Recipe 2.4. Deploying an Individual JSP on Tomcat |
| | | Recipe 2.5. Deploying an Individual JSP on WebLogic |
| | | Recipe 2.6. Deploying a Web Application on Tomcat |
| | | Recipe 2.7. Deploying a Web Application on WebLogic Using Ant |
| | | Recipe 2.8. Using the WebLogic Administration Console |
| | | Recipe 2.9. Using WebLogic Builder to Deploy a Web Application |
| | | Recipe 2.10. Using the weblogic.DeployerCommand-Line Tool |
| | Chapter 3. Naming Your Servlets |
| | | Introduction |
| | | Recipe 3.1. Mapping a Servlet to a Name in web.xml |
| | | Recipe 3.2. Creating More Than One Mapping to a Servlet |
| | | Recipe 3.3. Creating a JSP-Type URL for a Servlet |
| | | Recipe 3.4. Mapping Static Content to a Servlet |
| | | Recipe 3.5. Invoking a Servlet Without a web.xml Mapping |
| | | Recipe 3.6. Mapping All Requests Within a Web Application to a Servlet |
| | | Recipe 3.7. Mapping Requests to a Controller and Preserving Servlet Mappings |
| | | Recipe 3.8. Creating Welcome Files for a Web Application |
| | | Recipe 3.9. Restricting Requests for Certain Servlets |
| | | Recipe 3.10. Giving Only the Controller Access to Certain Servlets |
| | Chapter 4. Using Apache Ant |
| | | Introduction |
| | | Recipe 4.1. Obtaining and Setting Up Ant |
| | | Recipe 4.2. Using Ant Targets |
| | | Recipe 4.3. Including Tomcat JAR files in the Build File Classpath |
| | | Recipe 4.4. Compiling a Servlet with an Ant Build File |
| | | Recipe 4.5. Creating a WAR File with Ant |
| | | Recipe 4.6. Creating a JAR File with Ant |
| | | Recipe 4.7. Starting a Tomcat Application with Ant |
| | | Recipe 4.8. Stopping a Tomcat Application with Ant |
| | Chapter 5. Altering the Format of JSPs |
| | | Introduction |
| | | Recipe 5.1. Precompiling a JSP in Tomcat |
| | | Recipe 5.2. Precompiling a JSP in WebLogic |
| | | Recipe 5.3. Precompiling JSPs with the Precompilation Protocol |
| | | Recipe 5.4. Mapping a JSP to Its Page Implementation Class |
| | | Recipe 5.5. Creating a JSP from Scratch as a JSP Document |
| | | Recipe 5.6. Generating an XML View from a JSP |
| | Chapter 6. Dynamically Including Contentin Servlets and JSPs |
| | | Introduction |
| | | Recipe 6.1. Including a Resource Each Time a Servlet Handles a Request |
| | | Recipe 6.2. Using an External Configuration to Include a Resource in a Servlet |
| | | Recipe 6.3. Including Resources Nested at Multiple Levels in a Servlet |
| | | Recipe 6.4. Including a Resource that Seldom Changes into a JSP |
| | | Recipe 6.5. Including Content in a JSP Each Time the JSP Handles a Request |
| | | Recipe 6.6. Using an External Configuration File to Include a Resource in a JSP |
| | | Recipe 6.7. Including an XML Fragment in a JSP Document |
| | | Recipe 6.8. Including Content from Outside a Context in a JSP |
| | Chapter 7. Handling Web Form Data inServlets and JSPs |
| | | Introduction |
| | | Recipe 7.1. Handling a POST HTTP Request in a Servlet |
| | | Recipe 7.2. Handling a POST HTTP Request in a JSP |
| | | Recipe 7.3. Setting the Properties of a JavaBean in a JSP |
| | | Recipe 7.4. Setting a Scoped Attribute in a JSP to the Value of a Form Parameter |
| | | Recipe 7.5. Posting Data from a Servlet |
| | | Recipe 7.6. Posting Data from a JSP |
| | | Recipe 7.7. Using a Servlet to Add a Parameter to a Query String |
| | | Recipe 7.8. Using a JSP to Add a Parameter to a Query String |
| | | Recipe 7.9. Using a Filter to Read Parameter Values |
| | Chapter 8. Uploading Files |
| | | Introduction |
| | | Recipe 8.1. Preparing the HTML Page for File Uploads |
| | | Recipe 8.2. Using the com.oreilly.servlet Library |
| | | Recipe 8.3. Uploading One File at a Time |
| | | Recipe 8.4. Uploading Multiple Files |
| | | Recipe 8.5. Renaming Files |
| | | Recipe 8.6. Using a JSP to Handle a File Upload |
| | Chapter 9. Handling Exceptions in Web Applications |
| | | Introduction |
| | | Recipe 9.1. Declaring Exception Handlers in web.xml |
| | | Recipe 9.2. Creating an Exception-Handling Servlet |
| | | Recipe 9.3. Sending an Error from a Servlet |
| | | Recipe 9.4. Sending an Error from a JSP |
| | | Recipe 9.5. Creating an Error-Handling JSP |
| | | Recipe 9.6. Declaring a Special Exception-Handling JSP for Other JSPs |
| | Chapter 10. Reading and Setting Cookies |
| | | Introduction |
| | | Recipe 10.1. Setting a Cookie with a Servlet |
| | | Recipe 10.2. Creating an Array from All of the Request's Cookies |
| | | Recipe 10.3. Setting a Cookie with a JSP |
| | | Recipe 10.4. Reading Cookie Values with a Servlet |
| | | Recipe 10.5. Reading Cookie Values with a JSP |
| | | Recipe 10.6. Altering or Removing a Cookie That Has Already Been Set |
| | Chapter 11. Session Tracking |
| | | Introduction |
| | | Recipe 11.1. Setting the Session Timeout in web.xml |
| | | Recipe 11.2. Setting the Session Timeout in All Tomcat Web Applications |
| | | Recipe 11.3. Setting the Session Timeout Programmatically |
| | | Recipe 11.4. Checking if a Session Exists in an HttpServletRequest |
| | | Recipe 11.5. Tracking Session Activity in Servlets |
| | | Recipe 11.6. Tracking Session Activity in JSPs |
| | | Recipe 11.7. Using URL Rewriting in a JSP |
| | | Recipe 11.8. Using URL Rewriting in a Servlet |
| | | Recipe 11.9. Using a Listener to Track the Session Lifecycle |
| | | Recipe 11.10. Using a Listener to Monitor Session Attributes |
| | | Recipe 11.11. Using a Filter to Monitor Session Attributes |
| | Chapter 12. Integrating JavaScript with Servlets and JSPs |
| | | Introduction |
| | | Recipe 12.1. Including JavaScript Modules in a Servlet |
| | | Recipe 12.2. Including JavaScript Modules in a JSP |
| | | Recipe 12.3. Creating a New Window with JavaScript in a Servlet |
| | | Recipe 12.4. Creating a New Window with JavaScript in a JSP |
| | | Recipe 12.5. Using JavaScript to Validate Form Values in a Servlet |
| | | Recipe 12.6. Using JavaScript to Validate Form Values in a JSP |
| | Chapter 13. Sending Non-HTML Content |
| | | Introduction |
| | | Recipe 13.1. Sending a PDF File |
| | | Recipe 13.2. Sending a Word Processing File |
| | | Recipe 13.3. Sending an XML file |
| | | Recipe 13.4. Sending an Audio File |
| | | Recipe 13.5. Viewing Internal Resources in a Servlet |
| | Chapter 14. Logging Messages from Servlets and JSPs |
| | | Introduction |
| | | Recipe 14.1. Logging Without Log4j |
| | | Recipe 14.2. Setting Up Log4j |
| | | Recipe 14.3. Using a Logger Without a Configuration File |
| | | Recipe 14.4. Adding an Appender to the Root Logger |
| | | Recipe 14.5. Using a Pattern with a Logger's Appender |
| | | Recipe 14.6. Using log4j in a JSP |
| | | Recipe 14.7. Logging Messages Using a Servlet Context Event Listener |
| | | Recipe 14.8. Logging Messages Using a Session Event Listener |
| | Chapter 15. Authenticating Clients |
| | | Introduction |
| | | Recipe 15.1. Creating Users and Passwords with Tomcat |
| | | Recipe 15.2. Setting Up SSL on Tomcat |
| | | Recipe 15.3. Using BASIC Authentication |
| | | Recipe 15.4. Using Form-Based Authentication |
| | | Recipe 15.5. Logging Out a User |
| | | Recipe 15.6. Using JAAS to Create a LoginModule |
| | | Recipe 15.7. Creating the JAAS Configuration File |
| | | Recipe 15.8. Using JAAS in a Servlet |
| | | Recipe 15.9. Using JAAS in a JSP |
| | Chapter 16. Binding, Accessing, and Removing Attributes in Web Applications |
| | | Introduction |
| | | Recipe 16.1. Setting ServletContext Attributes in Servlets |
| | | Recipe 16.2. Setting ServletContext Attributes in JSPs |
| | | Recipe 16.3. Accessing or Removing ServletContext Attributes in Servlets |
| | | Recipe 16.4. Accessing or Removing ServletContext Attributes in JSPs |
| | | Recipe 16.5. Setting Session Attributes in Servlets |
| | | Recipe 16.6. Setting Session Attributes in JSPs |
| | | Recipe 16.7. Accessing or Removing Session Attributes in Servlets |
| | | Recipe 16.8. Accessing or Removing Session Attributes in JSPs |
| | | Recipe 16.9. Setting Request Attributes in Servlets |
| | | Recipe 16.10. Setting Request Attributes in JSPs |
| | | Recipe 16.11. Accessing or Removing Request Attributes in Servlets |
| | | Recipe 16.12. Accessing or Removing Request Attributes in JSPs |
| | Chapter 17. Embedding Multimedia in JSPs |
| | | Introduction |
| | | Recipe 17.1. Embedding an Applet in a JSPUsing jsp:plugin |
| | | Recipe 17.2. Embedding an Applet in a JSP Using the HTML Converter |
| | | Recipe 17.3. Automatically Creating HTML Template for Including Flash Files |
| | | Recipe 17.4. Writing HTML Template to Embed a Flash File |
| | | Recipe 17.5. Embedding Flash in a Servlet |
| | | Recipe 17.6. Embedding a QuickTime Movie in a JSP |
| | | Recipe 17.7. Embedding an SVG File in a JSP |
| | | Recipe 17.8. Embedding a Background Soundtrack in a JSP |
| | Chapter 18. Working With the Client Request |
| | | Introduction |
| | | Recipe 18.1. Examining HTTP Request Headers in a Servlet |
| | | Recipe 18.2. Examining HTTP Request Headers in a JSP |
| | | Recipe 18.3. Using a Filter to Alter Request Headers |
| | | Recipe 18.4. Automatically Refreshing a Servlet |
| | | Recipe 18.5. Automatically Refreshing a JSP |
| | | Recipe 18.6. Counting the Number of Web Application Requests |
| | Chapter 19. Filtering Requests and Responses |
| | | Introduction |
| | | Recipe 19.1. Mapping a Filter to a Servlet |
| | | Recipe 19.2. Mapping a Filter to a JSP |
| | | Recipe 19.3. Mapping More Than One Filter to a Servlet |
| | | Recipe 19.4. Changing the Order in Which Filters are Applied to Servlets |
| | | Recipe 19.5. Configuring Initialization Parameters for a Filter |
| | | Recipe 19.6. Optionally Blocking a Request with a Filter |
| | | Recipe 19.7. Filtering the HTTP Response |
| | | Recipe 19.8. Using Filters with RequestDispatcher Objects |
| | | Recipe 19.9. Checking Form Parameters with a Filter |
| | | Recipe 19.10. Blocking IP Addresses with a Filter |
| | Chapter 20. Managing Email in Servlets and JSPs |
| | | Introduction |
| | | Recipe 20.1. Placing the Email-Related Classes on your Classpath |
| | | Recipe 20.2. Sending Email from a Servlet |
| | | Recipe 20.3. Sending Email from a Servlet Using a JavaBean |
| | | Recipe 20.4. Accessing Email from a Servlet |
| | | Recipe 20.5. Accessing Email from a Servlet Using a JavaBean |
| | | Recipe 20.6. Handling Attachments from an Email Received in a Servlet |
| | | Recipe 20.7. Adding Attachments to an Email in a Servlet |
| | | Recipe 20.8. Reading a Received Email's Headers from a Servlet |
| | Chapter 21. Accessing Databases |
| | | Introduction |
| | | Recipe 21.1. Accessing a Database from a Servlet Without DataSource |
| | | Recipe 21.2. Configuring a DataSource in Tomcat |
| | | Recipe 21.3. Using a DataSource in a Servlet with Tomcat |
| | | Recipe 21.4. Creating a DataSource on WebLogic |
| | | Recipe 21.5. Using a JNDI Lookup to get a DataSource from WebLogic |
| | | Recipe 21.6. Using a DataSource from WebLogic in a JSP |
| | | Recipe 21.7. Calling a Stored Procedure from a Servlet |
| | | Recipe 21.8. Calling a Stored Procedure from a JSP |
| | | Recipe 21.9. Converting a ResultSet to a Result Object |
| | | Recipe 21.10. Executing Several SQL Statements Within a Single Transaction |
| | | Recipe 21.11. Using Transactions with JSPs |
| | | Recipe 21.12. Finding Information about a ResultSet |
| | Chapter 22. Using Custom Tag Libraries |
| | | Introduction |
| | | Recipe 22.1. Creating a Classic Tag Handler |
| | | Recipe 22.2. Creating a JSP 1.2 TLD for a Classic Tag Handler |
| | | Recipe 22.3. Creating a JSP 2.0 TLD for a Classic Tag Handler |
| | | Recipe 22.4. Packaging a Tag Library in a Web Application |
| | | Recipe 22.5. Packaging the Tag Library in a JAR File |
| | | Recipe 22.6. Using the Custom Tag in a JSP |
| | | Recipe 22.7. Handling Exceptions in a Custom Tag Class |
| | | Recipe 22.8. Creating a Simple Tag Handler |
| | | Recipe 22.9. Creating a TLD for a Simple Tag Handler |
| | | Recipe 22.10. Using a Simple Tag Handler in a JSP |
| | | Recipe 22.11. Creating a JSP Tag File |
| | | Recipe 22.12. Packaging the JSP Tag File in a Web Application |
| | | Recipe 22.13. Packaging the JSP Tag File in a JAR |
| | | Recipe 22.14. Using a Custom Tag Associated with a Tag File |
| | | Recipe 22.15. Adding a Listener Class to a Tag Library |
| | Chapter 23. Using the JSTL |
| | | Introduction |
| | | Recipe 23.1. Downloading the JSTL 1.0 and Using the JSTL Tags in JSPs |
| | | Recipe 23.2. Downloading the Java Web Services Developer Pack |
| | | Recipe 23.3. Using the Core JSTL Tags |
| | | Recipe 23.4. Using the XML Core JSTL Tags |
| | | Recipe 23.5. Using the XML Transform Tags |
| | | Recipe 23.6. Using the Formatting JSTL Tags |
| | | Recipe 23.7. Using A SQL JSTL Tag with a DataSource Configuration |
| | | Recipe 23.8. Using A SQL JSTL Tag Without a DataSource Configuration |
| | | Recipe 23.9. Accessing Scoped Variables with the EL |
| | | Recipe 23.10. Accessing Request Parameters with the EL |
| | | Recipe 23.11. Using the EL to Access Request Headers |
| | | Recipe 23.12. Using the EL to Access One Request Header |
| | | Recipe 23.13. Accessing Cookies with the EL |
| | | Recipe 23.14. Using the EL to Access JavaBean Properties |
| | | Recipe 23.15. Using JSTL Functions |
| | Chapter 24. Internationalization |
| | | Introduction |
| | | Recipe 24.1. Detecting the Client Locale in a Servlet |
| | | Recipe 24.2. Detecting the Client's Locales in a JSP |
| | | Recipe 24.3. Creating a ResourceBundle as a Properties File |
| | | Recipe 24.4. Creating a ResourceBundle as a Java Class |
| | | Recipe 24.5. Using the ResourceBundle in a Servlet |
| | | Recipe 24.6. Using the ResourceBundle in a JSP |
| | | Recipe 24.7. Formatting Dates in a Servlet |
| | | Recipe 24.8. Formatting Dates in a JSP |
| | | Recipe 24.9. Formatting Currencies in a Servlet |
| | | Recipe 24.10. Formatting Currencies in a JSP |
| | | Recipe 24.11. Formatting Percentages in a Servlet |
| | | Recipe 24.12. Formatting Percentages in a JSP |
| | | Recipe 24.13. Setting the Localization Context in the Deployment Descriptor |
| | Chapter 25. Using JNDI and Enterprise JavaBeans |
| | | Introduction |
| | | Recipe 25.1. Configuring a JNDI Object in Tomcat |
| | | Recipe 25.2. Accessing the Tomcat JNDI Resource from a Servlet |
| | | Recipe 25.3. Accessing the Tomcat JNDI Resource from a JSP |
| | | Recipe 25.4. Configuring a JNDI Resource in WebLogic |
| | | Recipe 25.5. Viewing the JNDI Tree in WebLogic |
| | | Recipe 25.6. Accessing the WebLogic JNDI Resource from a Servlet |
| | | Recipe 25.7. Accessing the WebLogic JNDI Resource from a JSP |
| | | Recipe 25.8. Accessing an EJB Using the WebLogic JNDI Tree |
| | Chapter 26. Harvesting Web Information |
| | | Introduction |
| | | Recipe 26.1. Parsing an HTML Page Using thejavax.swing.text Subpackages |
| | | Recipe 26.2. Using a Servlet to Harvest Web Data |
| | | Recipe 26.3. Creating a JavaBean as a Web Page Parser |
| | | Recipe 26.4. Using the Web Page Parsing JavaBean in a Servlet |
| | | Recipe 26.5. Using the Web Page Parsing JavaBean in a JSP |
| | Chapter 27. Using the Google and Amazon Web APIs |
| | | Introduction |
| | | Recipe 27.1. Getting Set Up with Google's Web API |
| | | Recipe 27.2. Creating a JavaBean to Connect with Google |
| | | Recipe 27.3. Using a Servlet to Connect with Google |
| | | Recipe 27.4. Using a JSP to Connect with Google |
| | | Recipe 27.5. Getting Set Up with Amazon's Web Services API |
| | | Recipe 27.6. Creating a JavaBean to Connect with Amazon |
| | | Recipe 27.7. Using a Servlet to Connect with Amazon |
| | | Recipe 27.8. Using a JSP to Connect with Amazon |
| | Colophon |
| | Index |