| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
| |
Introduction | |
| |
| |
| |
A Brief History of the Web | |
| |
| |
| |
Basic Dynamic Page Generation | |
| |
| |
| |
Solving CGI Problems | |
| |
| |
| |
Speeding up CGI | |
| |
| |
| |
Separating HTML from Code | |
| |
| |
| |
Servlets and JavaServer Pages | |
| |
| |
| |
Welcome to Java News Today | |
| |
| |
| |
Trying the Examples | |
| |
| |
| |
Simple JSPs | |
| |
| |
| |
Removing Text from a JSP | |
| |
| |
| |
JSP Errors | |
| |
| |
| |
Including Text in a JSP | |
| |
| |
| |
The Phases of a JSP | |
| |
| |
| |
Creating Custom Error Pages | |
| |
| |
| |
Java News Today | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Tags Learned in This Chapter | |
| |
| |
| |
Using Beans | |
| |
| |
| |
Splitting Big Tasks into Manageable Pieces | |
| |
| |
| |
Defining Beans | |
| |
| |
| |
JavaBean Tags | |
| |
| |
| |
Getting a Property | |
| |
| |
| |
Setting Properties | |
| |
| |
| |
Making Data Available Throughout an Application | |
| |
| |
| |
The Page Scope | |
| |
| |
| |
The Request Scope | |
| |
| |
| |
The Session Scope | |
| |
| |
| |
The Application Scope | |
| |
| |
| |
Special Actions When Beans Are Created | |
| |
| |
| |
Making Beans Last Forever | |
| |
| |
| |
Java News Today and Beans | |
| |
| |
| |
Future Directions | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Tags Learned in This Chapter | |
| |
| |
| |
The Standard Tag Library | |
| |
| |
| |
Tag Libraries | |
| |
| |
| |
Tags with Bodies | |
| |
| |
| |
Dynamic Attributes in Tags | |
| |
| |
| |
Displaying Expressions | |
| |
| |
| |
Formatting Output | |
| |
| |
| |
Compound Data in the Expression Language | |
| |
| |
| |
Repeating a Section of a Page | |
| |
| |
| |
Optionally Including Sections of a Page | |
| |
| |
| |
Browser Detection | |
| |
| |
| |
Combining Tags | |
| |
| |
| |
Selecting among Multiple Choices | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Tags Learned in this Chapter | |
| |
| |
| |
Java News Today: Part I | |
| |
| |
| |
The Beans | |
| |
| |
| |
The Header | |
| |
| |
| |
The Left-Hand Navigation | |
| |
| |
| |
The Login Page | |
| |
| |
| |
The Quiz Result Page | |
| |
| |
| |
The Section Page | |
| |
| |
| |
The Article Page | |
| |
| |
| |
The Remaining Pages | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Tags Learned in this Chapter | |
| |
| |
| |
Databases | |
| |
| |
| |
A Quick Introduction to Databases | |
| |
| |
| |
A Language for Databases | |
| |
| |
| |
Using SQL Directly from JSPs | |
| |
| |
| |
Inserting Data from JSPs | |
| |
| |
| |
SQL and Beans | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Tags Learned in This Chapter | |
| |
| |
| |
Java News Today: Part 2 | |
| |
| |
| |
Designing the Tables | |
| |
| |
| |
Adding Articles | |
| |
| |
| |
User Pages | |
| |
| |
| |
Other User Preferences | |
| |
| |
| |
Advertising | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Working with XML | |
| |
| |
| |
A Brief Introduction to XML | |
| |
| |
| |
Using XML in JSPs | |
| |
| |
| |
Selecting Data from an XML Document | |
| |
| |
| |
Processing XML in JSPs | |
| |
| |
| |
Formatting XML | |
| |
| |
| |
Java News Today and XML | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Tags Learned in this Chapter | |
| |
| |
| |
A Small Cup of Java | |
| |
| |
| |
Expressions | |
| |
| |
| |
Types | |
| |
| |
| |
Storing Values | |
| |
| |
| |
Method Calls | |
| |
| |
| |
Conditionally Evaluating Code | |
| |
| |
| |
Evaluating the Same Code Multiple Times | |
| |
| |
| |
Grouping Code | |
| |
| |
| |
Handling Errors | |
| |
| |
| |
Modeling a Problem with Objects | |
| |
| |
| |
Objects in Java | |
| |
| |
| |
Building Objects from Classes | |
| |
| |
| |
Sometimes Nothing Is Something | |
| |
| |
| |
Building Classes from Other Classes | |
| |
| |
| |
Interfaces | |
| |
| |
| |
Creating Groups of Classes and Interfaces | |
| |
| |
| |
Using Java in JSPs | |
| |
| |
| |
Database Access from Java | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Writing Beans | |
| |
| |
| |
How Beans Are Implemented | |
| |
| |
| |
Automatic Type Conversion | |
| |
| |
| |
How Beans Work | |
| |
| |
| |
Bean Serialization | |
| |
| |
| |
Events | |
| |
| |
| |
Special Events | |
| |
| |
| |
Bean Errors | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Servlets | |
| |
| |
| |
The Servlet Life Cycle | |
| |
| |
| |
The Servlet Class Hierarchy | |
| |
| |
| |
More about Requests | |
| |
| |
| |
More about Responses | |
| |
| |
| |
Convenience Methods | |
| |
| |
| |
Servlet Events | |
| |
| |
| |
Forwarding and Including Requests | |
| |
| |
| |
Using Scopes from Servlets | |
| |
| |
| |
Using Beans from Servlets | |
| |
| |
| |
The JSP Classes | |
| |
| |
| |
Intercepting Requests | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
The Controller | |
| |
| |
| |
Some Common Controller Tasks | |
| |
| |
| |
Support for Controllers: Struts | |
| |
| |
| |
Using Struts | |
| |
| |
| |
Providing Security | |
| |
| |
| |
Struts and JNT | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Creating New Tag Libraries | |
| |
| |
| |
The Tag Life Cycle | |
| |
| |
| |
Tags without Bodies | |
| |
| |
| |
Tags with Bodies | |
| |
| |
| |
Using the Expression Language | |
| |
| |
| |
JSPs as Custom Tags | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Advanced Topics | |
| |
| |
| |
Declaring Variables and Methods | |
| |
| |
| |
Extending Different Classes | |
| |
| |
| |
Returning Other Kinds of Data | |
| |
| |
| |
Threads | |
| |
| |
| |
Avoiding Thread Problems | |
| |
| |
| |
Using Threads | |
| |
| |
| |
Advanced Error Handling | |
| |
| |
| |
Summary and Conclusions | |
| |
| |
| |
Summary of Tags | |
| |
| |
| |
Built-in Tags | |
| |
| |
| |
Core Tags | |
| |
| |
| |
Format, Parsing, and Internationalization Tags | |
| |
| |
| |
SQL Tags | |
| |
| |
| |
XML Tags | |
| |
| |
| |
Configuring a Web Application | |
| |
| |
| |
Layout of the Directories | |
| |
| |
| |
The Web.xml File | |
| |
| |
Index | |