Java servlets are the killer app for server-side programming. They represent the first cross-platform solution for server-side development that delivers the performance developers require -- and they've been incorporated into nearly every leading Web server platform. Inside Servlets, Second Edition teaches developers all they need to build robust, powerful servlets with Sun's new Servlets 2.2 API. It combines detailed, real-world projects, a comprehensive API reference, and extensive new coverage of crucial topics ranging from security to database integration. The book starts with a brief, crystal-clear introduction to servlet technology and architecture -- and then dives into the sophisticated techniques Java developers need to make the most of their servlets. Dustin Callaway provides a complete development framework for building Internet applications, as well as three start-to-finish sample servlets. He also offers outstanding, code-rich explanations of key techniques such as state/session management, cookies, thread-safe servlets, JDBC database access, cross-request communications, request forwarding, and partitioning. This Second Edition adds extensive coverage of deployment, servlet security and authentication, internationalization, JavaServer Pages, and more.
Table of Contents
I. INTRODUCTION TO WEB DEVELOPMENT. Internet Basics 3.
Networks. Protocols. TCP/IP. Brief History of the Internet. Internet Addresses. Ports. Socket. Name Resolution. Firewalls. Protocol Tunneling. Proxy Servers. Internet Standards. Summary.2. Web Basics.
Brief History of the Web. URLs. Web Browsers. Web Servers. Common Gateway Interface. Summary.3. Beyond Web Basics.
HTTP. MIME. HTML Forms. Summary.
II. INTRODUCTION TO SERVLETS. 4. Why Servlets?
What Is a Servlet? Where Do Servlets Fit In? What Can Servlets Do? Why Are Servlets Better Than CGI? NSAPI/ISAPI. Summary.5. Servlet Basics.
Basic Servlet Structure. Servlet Lifecycle. Servlet Reloading. Dissecting Two Sample Servlets. Summary.6. Servlet API Basics.
HttpServlet. Class. GenericServlet. Class. ServletRequest Interface. HttpServletRequest Interface. ServletResponse Interface. HttpServletResponse Interface. Summary.7. Writing Your First Servlet.
Servlet Requirements. Main Page. View Bulletins. Post Bulletin Page. Save Bulletin Page. Complete Bulletin Board Servlet. Summary 1938 Running Servlets.
Apache Tomcat. Jrun. ServletExec. Resin. Summary.9. Debugging Servlets. AHEADS = Servlet Debugging Process. Jbuilder. Forte for Java. VisualCafé. Summary. 10. Beyond Servlet API Basics.
ServletInputStream Class.ServletOutputStream Class. ServletConfig Interface. ServletContext Interface. ServletException Class. UnavailableException Class. Summary.
III. ADVANCED SERVLET CONCEPTS. 11. Writing Thread-Safe Servlets.
What Is Thread Safety? Synchronization. Service, doGet, and doPost Local Variables. SingleThreadModel Interface. Background Threads. Summary.12. HTTP Redirects.
What Is an HTTP Redirect? HTTP Header Syntax for a Redirect. Sending a Redirect from a Servlet. Load-Balancing Servlet Using HTTP Redirects. Summary.13. Cookies.
What Is a Cookie? HTTP Header Syntax for a Cookie. Setting Cookies with the Servlet API. Summary. @CHAPTER 14. State and Session Management.
What Is a Stateless Protocol? What Is a Session? State and Session Management Defined. State and Session Management Methods. Session Management with the Servlet API. Session Listeners and Events. Summary.15. Request Forwarding, Server-Side Includes, Servlet Chaining.
Using the RequestDispatcher Object. Server-Side Includes. Servlet Chaining. Summary.16. Database Access with JDBC.
JDBC Architecture. Accessing a Database. Basics. Advanced Database Concepts. Database Connection Pooling. Introduction to the MySQL Database. Summary.17. Security.
Basic Authentication. Form-Based Authentication. Digest Authentication. Secure Sockets Layer. Summary.18. JavaServer.
Introduction to JSP. Scope Rules. Implicit Objects. Directives. Scripting Elements. Comments. Actions. CCustom Tag Libraries. Using JSP and Servlets Together. Summary.19. Packaging and Deployment. @AHEADS Building a Web Application Archive. Deploying on Apache Tomcat. Deploying on Jrun. Deploying on ServletExec. Summary. 20. Servlet Troubleshooting.
Protocol Explorer Utility. Diagnostics Servlet. Summary.
IV. SAMPLE SERVLETS. 21. Form Mailer Servlet. 22. File Upload Servlet. 23. Servlet Template Framework.
Building a Web Application. Inside the Template Server. Guest Book Sample Application.
V. SERVLET API QUICK REFERENCE. 24. Javax.Servlet Package.
Interface RequestDispatcher. Interface Servlet. Interface ServletConfig. Interface ServletContext. Interface ServletRequest. Interface ServletResponse. Interface SingleThreadModel. Class Generic Servlet. Class ServletInputStream. Class ServletOutputStream. Class ServletException. Class UnavailableException25. Javax.Servlet.http Package. Interface HttpServletRequest. Interface HttpServletResponse. Interface HttpSession. Interface HttpSessionBindingListener. Class Cookie. Class HttpServlet. Class HttpSessionBindingEvent. Class HttpUtils. 26. Servlet API 2.3 Update.
Filtering. Application Lifecycle Events. Shared Library Dependencies. New Error and Security Attributes. Welcome Files. New Classes, Interfaces, and Methods.
VI. APPENDICES. A: Common Well-Known Port Assignments. B: Java Port Scanner. C: The Internet Standardization Process. D: URL Syntax for Common Protocols. E: Meaning of URL Special Characters. F: US-ASCII Encoding for Unsafe URL Characters. G: Java HTTP Server. H: HTTP Response Status Codes. I: Common HTTP Request Header Fields. J: Deployment Descriptor DTD. K: Common MIME Types. L: printStackTrace to String. M: Servlet API Class Hierarchy Diagram. Index. 0201709066T04272001
Java™ servlet technology, an integral part of the Java 2 Enterprise Edition (J2EE) platform, has become the de facto standard for creating dynamic, data-driven Web applications. By conforming to the Java™ Servlet API, developers can guarantee that their server-side programs will run on any J2EE-compliant platform that fully supports Java.
Written for the thousands of Web programmers, designers, and consultants who want to expand their repertoire of development tools or enhance their servlet programming skills, Inside Servlets, Second Edition, provides exactly the information needed. It offers important background information on Web technologies, an inside look at Java servlet technology, a hands-on servlet tutorial, and a guide to advanced servlet programming for creating sophisticated, high-performance Web sites.
This second edition has been thoroughly updated to incorporate versions 2.2 and 2.3 of the Java Servlet Specification. In addition, the book has been expanded to provide in-depth coverage of such vital topics as security, JavaServer Pages™, packaging and deployment, advanced database access techniques, and servlet troubleshooting.
Within this book you will find an introduction to Web technologies that explains such fundamentals as TCP/IP, firewalls, proxy servers, sockets, MIME, and HTTP. A servlet tutorial offers information on basic servlet structure, demonstrates how to write and run your first servlet, and previews the Servlet API. Inside Servlets then moves on to advanced servlet concepts and techniques. Lastly, a complete reference to the Servlet API is provided.
Specific topics featured include:
- Writing thread-safe servlets
- Servlet debugging
- HTTP redirects
- Cookies and session management
- Server-side includes
- Request forwarding
- Servlet chaining
- Database access with JDBC™
- Security and encryption
- JavaServer Pages (including custom tag libraries)
- Packaging and deployment
- Servlet troubleshooting
- Separating content from presentation using a servlet-based template framework
- Servlet filtering and application lifecycle events (introduced in Servlet API 2.3)
In addition, Inside Servlets, Second Edition, contains an entire section devoted to real-world examples of servlets in action, with detailed explanations and complete source code.
The web site accompanying this book contains the source code and compiled class files for all sample code; JRun 3.0 from Allaire; SevletExec 3.0 from New Atlanta Communications; Resin 1.2 from Caucho Technology; Apache Tomcat 3.1 and 3.2; MySQL database and JDBC(TM) driver; JBuilder 4 Foundation Edition from Borland; and many other valuable servlet development tools.
Dustin R. Callaway is a well-known Internet programmer, consultant, trainer, and author. He currently works as a senior software engineer for Financial Fusion, Inc., a leading provider of financial services software. Dustin holds a B.S. degree in computer science from Brigham Young University and is the founder of SourceStream, an Internet consulting and software development firm. He can be reached via e-mail at email@example.com or on the Web at www.InsideServlets.com.