Acknowledgments | p. ix |
Introduction | p. xi |
Servlet Overview | p. 1 |
What Are Servlets? | p. 2 |
Why Use Servlets? | p. 3 |
What Do You Need to Write Servlets? | p. 4 |
What Do You Need to Run Servlets? | p. 4 |
Summary | p. 6 |
The Java Web Server | p. 7 |
The JavaServer Architecture | p. 8 |
Administration | p. 10 |
Internal Servlets | p. 28 |
Accessing the Java Web Server | p. 30 |
Summary | p. 31 |
Your First Servlet | p. 33 |
The Basic Flow | p. 34 |
Before You Get Started | p. 36 |
Servlet Example: Properties | p. 36 |
Summary | p. 45 |
Servlet Chaining | p. 47 |
What Is Servlet Chaining? | p. 48 |
Chaining Example: Table Filter | p. 48 |
Triggering a Servlet Chain | p. 52 |
Summary | p. 62 |
Server-Side Includes | p. 63 |
What Are Server-Side Includes? | p. 64 |
The Servlet Tag Syntax | p. 65 |
Server-Side Includes Example: Echo Servlet Tag | p. 66 |
Server-Side Includes Example: Standard Header and Standard Footer | p. 70 |
Summary | p. 75 |
Session Management | p. 77 |
Session Tracking | p. 78 |
Cookies | p. 88 |
URL Rewriting | p. 90 |
Session Tracking without a Browser | p. 93 |
Session Events | p. 99 |
Summary | p. 102 |
Security | p. 103 |
HTTP Authentication | p. 104 |
Custom Authentication | p. 106 |
HTML Form Authentication | p. 112 |
Applet Authentication | p. 116 |
Secure Sockets Layer | p. 126 |
Summary | p. 127 |
HTML Forms | p. 129 |
HTML Forms or Java Applets? | p. 130 |
Form Basics | p. 130 |
The EchoSurvey Servlet | p. 154 |
Summary | p. 158 |
Using JDBC in Servlets | p. 159 |
JDBC Overview | p. 160 |
JDBC Servlet: EmployeeList | p. 176 |
Connection Pooling | p. 187 |
Working with Images | p. 203 |
Summary | p. 210 |
Applet to Servlet Communication | p. 211 |
HTTP | p. 212 |
What Is Tunneling? | p. 213 |
The Basic Flow | p. 213 |
Tunneling for Java 1.0.2 | p. 214 |
New for Java 1.1: Serialization | p. 241 |
Summary | p. 261 |
Automating Applet to Servlet Programming | p. 263 |
Writing the Client Is Always the Same | p. 264 |
Writing the Server Is Always the Same | p. 266 |
Let Java Write the Client and Server for You | p. 268 |
Summary | p. 303 |
Easting the Distribution Process: Automatic JAR File Creation | p. 305 |
Discovering Class File Dependencies | p. 306 |
Opening and Reading a Class File | p. 315 |
Reading the Number of Entries in the Constant Pool | p. 319 |
Putting It All Together: The CreateArchive Application | p. 323 |
Distributing an Applet | p. 325 |
A Few Pitfalls | p. 328 |
Summary | p. 329 |
Three-Tier JDBC Driver | p. 331 |
JDBC Driver Types | p. 332 |
The Challenge: A Lightweight JDBC Driver | p. 333 |
JDBC Hurdles | p. 335 |
Writing SQLServlet | p. 336 |
SQLServlet Example: SimpleQuery Applet | p. 370 |
Summary | p. 380 |
Sending Mail from Servlets | p. 381 |
What Are the Options? | p. 382 |
Sending Mail Using SmtpClient | p. 383 |
The JavaMail API | p. 387 |
Summary | p. 402 |
Using Servlets and Native Code | p. 403 |
JNI Overview | p. 404 |
Obligatory "Hello World" | p. 405 |
Invoking Java Methods from C | p. 411 |
Listing ODBC Data Sources | p. 416 |
Summary | p. 426 |
Using Servlets and RMI | p. 427 |
The Challenge: Accessing Other Java Servers | p. 428 |
RMI Overview | p. 429 |
RMI Example: CustomerInfo | p. 430 |
Converting a Servlet into an RMI Server | p. 441 |
Making RMI Even Easier | p. 441 |
Summary | p. 441 |
The Servlet API | p. 443 |
Cookie | p. 444 |
GenericServlet | p. 449 |
HttpServlet | p. 453 |
HttpServletRequest | p. 458 |
HttpServletResponse | p. 463 |
HttpSession | p. 469 |
HttpSessionBindingEvent | p. 473 |
HttpSessionBindingListener | p. 475 |
HttpSessionContext | p. 477 |
HttpUtils | p. 478 |
RequestDispatcher | p. 480 |
Servlet | p. 482 |
ServletConfig | p. 484 |
ServletContext | p. 486 |
ServletException | p. 491 |
ServletInputStream | p. 492 |
ServletOutputStream | p. 494 |
ServletRequest | p. 496 |
ServletResponse | p. 500 |
SingleThreadModel | p. 502 |
UnavailableException | p. 503 |
On-line Servlet Resources | p. 505 |
Index | p. 507 |
Table of Contents provided by Syndetics. All Rights Reserved. |