You are previewing Java for the Web with Servlets, JSP, and EJB: A Developer’s Guide to J2EE Solutions.
O'Reilly logo
Java for the Web with Servlets, JSP, and EJB: A Developer’s Guide to J2EE Solutions

Book Description

Java for Web with Servlets, JSP and EJB is the one book you need to master Java web programming. It covers all the technologies needed to program web applications in Java using Servlets 2.3, JSP 1.2, EJB 2.0 and client-side programming with JavaScript. These technologies are explained in the context of real-world projects, such as an e-commerce application, a document management program, file upload and programmable file download, and an XML-based online book project.

In addition to excellent content, this book includes licenses to two Java web components from BrainySoftware.com. You receive a full license of the Programmable File Download component for commercial and non-commercial deployment. You are also granted to a license to deploy the author's popular File Upload bean for non-commercial use, which has been licensed by the Fortune 500 company Commerce One and purchased by major corporations such as Saudi Business Machine, Ltd. and Baxter Healthcare Corporation.

Table of Contents

  1. Copyright
  2. About the Author
  3. About the Technical Reviewers
  4. Acknowledgments
  5. Tell Us What You Think
  6. Introduction
    1. The Hypertext Transfer Protocol (HTTP)
      1. HTTP Requests
      2. HTTP request Methods
      3. HTTP Responses
    2. System Architecture
      1. The Two-Tier Architecture
      2. The Three-Tier Architecture
      3. The n-Tier Architecture
    3. Java 2, Enterprise Edition (J2EE)
    4. Developing Web Applications in Java
    5. Overview of Parts and Chapters
  7. I. Building Java Web Applications
    1. 1. The Servlet Technology
      1. The Benefits of Servlets
      2. Servlet Application Architecture
      3. How a Servlet Works
      4. The Tomcat Servlet Container
      5. Six Steps to Running Your First Servlet
        1. Step 1: Create a Directory Structure Under Tomcat
        2. Step 2: Write the Servlet Source Code
        3. Step 3: Compile Your Source Code
        4. Step 4: Create the Deployment Descriptor
        5. Step 5: Run Tomcat
        6. Step 6: Call Your Servlet from a Web Browser
      6. Summary
    2. 2. Inside Servlets
      1. The javax.servlet Package
      2. A Servlet’s Life Cycle
        1. The init( ) Method
        2. The service( ) Method
        3. The destroy( ) Method
        4. Demonstrating the Life Cycle of a Servlet
      3. Obtaining Configuration Information
      4. Preserving the ServletConfig
      5. The Servlet Context
      6. Sharing Information Among Servlets
      7. Requests and Responses
        1. The ServletRequest Interface
        2. The ServletResponse Interface
      8. The GenericServlet Wrapper Class
      9. Creating Thread-Safe Servlets
      10. Summary
    3. 3. Writing Servlet Applications
      1. The HttpServlet Class
      2. The HttpServletRequest Interface
        1. Obtaining HTTP Request Headers from HttpServletRequest
        2. Obtaining the Query String from HttpServletRequest
        3. Obtaining the Parameters from HttpServletRequest
        4. Manipulating Multi-Value Parameters
      3. HttpServletResponse
      4. Sending an Error Code
      5. Sending Special Characters
      6. Buffering the Response
      7. Populating HTML Elements
      8. Request Dispatching
        1. Including Other Resources
          1. Including Static Content
          2. Including Another Servlet
        2. Forwarding Processing Control
      9. Summary
    4. 4. Accessing Databases with JDBC
      1. The java.sql Package
        1. The DriverManager Class
        2. The Driver Interface
        3. The Connection Interface
          1. close
          2. isClosed
          3. createStatement
          4. prepareStatement
          5. getAutoCommit
          6. setAutoCommit
          7. commit
          8. rollback
        4. The Statement Interface
          1. executeQuery
          2. executeUpdate
        5. The ResultSet Interface
          1. isFirst
          2. isLast
          3. next
          4. getMetaData
        6. The PreparedStatement Interface
        7. The ResultSetMetaData Interface
          1. getColumnCount
          2. getColumnName
      2. Four Steps to Getting to the Database
        1. Step 1: Load a JDBC Database Driver
          1. Driver Types
          2. Installing JDBC Drivers
        2. Step 2: Creating a Connection
        3. Step 3: Creating a Statement
        4. Step 4: Creating a ResultSet
        5. Putting It All Together
      3. A Database-Based Login Servlet
      4. The Single Quote Factor
      5. Inserting Data into a Table with RegistrationServlet
      6. Displaying All Records
      7. Search Page
      8. An Online SQL Tool
      9. Should I Keep the Connection Open?
      10. Transactions
      11. Connection Pooling
      12. Summary
    5. 5. Session Management
      1. What Is Session Management?
      2. URL Rewriting
      3. Hidden Fields
        1. Using Hidden Fields
        2. Splitting Forms
        3. Multiple Forms in One Servlet
      4. Cookies
        1. Anticipating a Failed Redirection
        2. Persisting Cookies
        3. Checking Whether Cookie Setting Is On
      5. Session Objects
        1. The javax.servlet.http.HttpSession Interface
          1. getAttribute
          2. getAttributeNames
          3. getCreationTime
          4. getId
          5. getLastAccessedTime
          6. getMaxInactiveInterval
          7. getServletContext
          8. getSessionContext
          9. getValue
          10. getValueNames
          11. invalidate
          12. isNew
          13. putValue
          14. removeAttribute
          15. removeValue
          16. setAttribute
          17. setMaxInactiveInterval
        2. Using HttpSession Object
        3. Session Tracking with URL-Rewriting
      6. Knowing Which Technique to Use
      7. Summary
    6. 6. Application and Session Events
      1. Listening to Application Events
        1. The ServletContextListener Interface
          1. The ServletContextEvent Class
          2. Deployment Descriptor
          3. An Example: AppLifeCycleEvent Class
          4. Another Example: Loading a JDBC Driver and Setting a ServletContext Attribute
        2. Listening to ServletContextAttributeListener
        3. Another Example: PageCounterServlet
      2. Listening to HttpSession Events
        1. The HttpSessionListener Interface
        2. An Example: User Counter
        3. The HttpSessionAttributeListener Interface
      3. Summary
    7. 7. Servlet Filtering
      1. An Overview of the API
        1. The Filter Interface
        2. The FilterConfig Interface
        3. The FilterChain Interface
      2. A Basic Filter
      3. Mapping a Filter with a URL
      4. A Logging Filter
      5. Filter Configuration
      6. A Filter that Checks User Input
      7. Filtering the Response
      8. Filter Chain
      9. Summary
    8. 8. JSP Basics
      1. What’s Wrong with Servlets?
      2. Running Your First JSP
        1. Configuring Tomcat to Run a JSP Application
        2. Writing a JSP File
        3. Other Examples
      3. How JSP Works
      4. The JSP Servlet Generated Code
      5. The JSP API
        1. The JspPage Interface
        2. The HttpJspPage Interface
        3. The JspFactory Class
        4. The JspEngineInfo Class
        5. The PageContext Class
        6. The JspWriter Class
      6. The Generated Servlet Revisited
      7. Implicit Objects
        1. request and response Implicit Objects
        2. out Implicit Object
        3. session Implicit Object
        4. application
        5. config
        6. pageContext
        7. page
        8. exception
      8. Summary
    9. 9. JSP Syntax
      1. Directives
        1. The Page Directive
          1. The language Attribute
          2. The info Attribute
          3. The contentType Attribute
          4. The extends Attribute
          5. The import Attribute
          6. The buffer Attribute
          7. The autoFlush Attribute
          8. The session Attribute
          9. The isThreadSafe Attribute
          10. The errorPage Attribute
          11. The isErrorPage Attribute
        2. The include Directive
        3. The taglib Directive
      2. Scripting Elements
        1. Scriptlets
        2. Declarations
          1. Writing Initialization and Clean-up Code
          2. Expressions
      3. Standard Action Elements
        1. jsp:include
        2. jsp:forward
        3. jsp:plugin
        4. jsp:params
        5. jsp:fallback
      4. Comments
      5. Converting into XML Syntax
        1. Directives
        2. Scripting Elements
          1. Declarations
          2. Scriptlets
          3. Expressions
        3. Template Data
      6. Summary
    10. 10. Developing JSP Beans
      1. Calling Your Bean from a JSP Page
      2. A Brief Theory of JavaBeans
      3. Making a Bean Available
        1. id
        2. class
        3. type
        4. scope
          1. page
          2. request
          3. session
          4. application
        5. beanName
        6. The Generated Servlet
      4. Accessing Properties Using jsp:getProperty and jsp:setProperty
      5. Setting a Property Value from a Request
      6. JavaBeans Code Initialization
      7. The SQLToolBean Example
      8. Summary
    11. 11. Using JSP Custom Tags
      1. Writing Your First Custom Tag
      2. The Role of the Deployment Descriptor
      3. The Tag Library Descriptor
        1. The tag Element
      4. The Custom Tag Syntax
      5. The JSP Custom Tag API
        1. The Tag Interface
      6. The Life Cycle of a Tag Handler
        1. A Content Substitution Tag Handler
        2. An Example: Using Attributes in a custom Tag
        3. The IterationTag Interface
        4. An Example: A PowerTag
        5. Manipulating Body Contents with BodyTag and BodyContent
        6. The BodyTag Interface
        7. The BodyContent Class
        8. An Example: Manipulating the Body Content
        9. The Support Classes
          1. The TagSupport Class
          2. The BodyTagSupport Class
      7. Summary
    12. 12. Programmable File Download
      1. Keys to Programmable File Download
      2. Using the Brainysoftware.com File Download Bean
      3. Summary
    13. 13. File Upload
      1. The HTTP Request
        1. The request Method, URI, and Protocol
        2. The HTTP Request Headers
        3. The Entity Body
          1. HTTP Request Example
      2. Client-Side HTML
      3. HTTP Request of an Uploaded File
      4. Uploading a File
      5. FileUpload Bean
        1. Using the File Upload Bean
      6. Multiple File Upload
      7. Summary
    14. 14. Security Configuration
      1. Imposing Security Constraints
        1. Principals and Roles
        2. Using the Security-Constraint Element
        3. Using the login-config Element
      2. Allowing Multiple Roles
      3. Form-Based Authentication
      4. Digest Authentication
      5. Methods Related to Security
      6. Restricting Certain Methods
      7. Summary
    15. 15. Caching
      1. Caching Data into a Text File
      2. Caching in Memory
      3. Summary
    16. 16. Application Deployment
      1. Application Directory Structure
      2. Deployment Descriptor
        1. icon
        2. display-name
        3. description
        4. distributable
        5. context-param
        6. filter
        7. filter-mapping
        8. listener
        9. servlet
        10. servlet-mapping
        11. session-config
        12. mime-mapping
        13. welcome-file-list
        14. error-page
        15. taglib
        16. resource-env-ref
        17. resource-ref
        18. security-constraint
        19. login-config
        20. security-role
        21. env-entry
      3. Servlet Alias and Mapping
      4. JSP Alias and Mapping
      5. Packaging and Deploying a Web Application
      6. Summary
    17. 17. Architecting Java Web Applications
      1. Model 1 Architecture
        1. Example of Model 1 Architecture: A Login Application
        2. The Advantages and Disadvantages of Model 1 Architecture
      2. Model 2 Architecture
        1. Example of Model 2 Application
      3. Summary
    18. 18. Developing E-Commerce Applications
      1. Project Specification
      2. The Database Structure
        1. The Categories Table
        2. The Products Table
        3. The Orders Table
        4. The OrderDetails Table
      3. Page Design
      4. Preparation
      5. Application Design
      6. Building the Project
        1. The Deployment Descriptor
        2. The Controller Servlet
        3. Supporting Classes
        4. Included Files
        5. The Default Page
        6. The SearchResults Page
        7. The BrowseCatalog Page
        8. The ProductDetails Page
        9. The ShoppingCart.jsp Page
        10. The CheckOut Page
        11. The Order Page
        12. The DbBean JavaBean
      7. Summary
    19. 19. XML-Based E-Books
      1. The Table of Contents
      2. Translating XML into the Object Tree
      3. The Project
        1. TocBean.java
          1. getToc()
          2. getChildNode()
      4. Pre-Render the Table of Contents
      5. Summary
    20. 20. Web-Based Document Management
      1. The Docman Project
        1. System Requirements
        2. The Database Structure
        3. The Code
        4. The DBBean Bean
          1. verifyUser(String userName, String password)
          2. getDataPath()
          3. getFolderName(String id, String userName, String password)
          4. getParentId()
          5. getChildObjects(String parentId, String userName, String password)
          6. getFilename(String objectId, String userName, String password)
          7. getCookie(javax.servlet.http.HttpServletRequest request, String cookie)
          8. hasUploadPermission(String id, String userName, String password)
          9. synchronized public int getLastObjectId()
          10. insertObject(String parentId, String objectId, String filename)
          11. insertPermissions(String parentId, String objectId)
        5. The Pages
          1. Login.html
          2. DisplayObjects.jsp
          3. DownloadObject.jsp
        6. File Upload
        7. Folder Tree
        8. Further Enhancement
      2. Summary
  8. II. Client-Side Programming with JavaScript
    1. 21. JavaScript Basics
      1. Introduction to JavaScript
        1. Case-Sensitivity
        2. Terminating a Line of Code
        3. Comments
        4. Strings
        5. Typedness
        6. Variable Declarations
        7. The if Statements
        8. The while Loop
        9. The for loop
        10. The with keyword
        11. Boolean Expressions
        12. Logical and Bitwise Operators
        13. Functions
        14. The String Object and the string Data Type
        15. JavaScript Keywords
        16. Reserved Words
        17. Illegal Identifiers
      2. Adding JavaScript Code to HTML
      3. JavaScript Object Model
      4. Event Handler
      5. Window and String Objects
        1. Window Object
          1. Properties
          2. Methods
        2. The String Object
      6. Summary
    2. 22. Client-Side Programming Basics
      1. Checking Whether JavaScript Is Enabled
        1. Checking with Redirection
        2. Checking JavaScript with a Form
        3. Checking Whether JavaScript Is On in JavaScript-Capable Browsers
      2. Handling JavaScript-Unaware Browsers
      3. Handling Different Versions of JavaScript
      4. Including a JavaScript File
      5. Checking the Operating System
      6. Checking the Browser Generation
      7. Checking the Browser Type
      8. Checking the Browser Language
      9. Handling Dynamic Variable-Names
      10. Summary
    3. 23. Redirection
      1. Anticipating Failed Redirection
      2. Using the Refresh Meta Tag
      3. Using the location Object
      4. Going Back to the Previous Page
      5. Moving Forward
      6. Navigation with a SELECT Element
      7. Summary
    4. 24. Client-Side Input Validation
      1. The isEmpty Function
      2. The trim Function
      3. The trimAll Function
      4. The isPositiveInteger Function
      5. The isValidPhoneNumber Function
      6. The isMoney Function
      7. The isUSDate and isOZDate Functions
      8. Converting Date Formats
      9. Data Type Conversion: String to Numeric
      10. Data Type Conversion: Numeric to String
      11. Using the Validation Functions
      12. Summary
    5. 25. Working with Client-Side Cookies
      1. Creating Cookies with a <META> Tag
      2. Creating Cookies with document.cookie
      3. Creating Cookies with the setCookie Function
      4. Reading Cookies on the Browser
      5. Deleting a Cookie on the Browser
      6. Checking If the Browser Can Accept Cookies Using JavaScript
      7. Checking If the Browser Accepts Cookies Without JavaScript
      8. Summary
    6. 26. Working with Object Trees
      1. The Array Object
        1. Creating an Array
        2. Populating an Array
        3. The delete Operator
      2. Truly Deleting an Array Element
      3. Creating an Object
      4. A Hierarchy of Objects
        1. Appending a Child Object to Another Object
        2. Navigating the Tree
        3. Searching for an Object in the Object Tree
        4. Displaying an Object Tree
        5. Deleting a Child Object
        6. Event Handling in an Object Tree
      5. Summary
    7. 27. Controlling Applets
      1. Is Java Enabled?
      2. Is the Applet Ready?
      3. Resizing an Applet
      4. Calling an Applet’s Method
      5. Getting an Applet’s Property
      6. Setting an Applet Property
      7. Using Java Classes Directly
      8. Applet-to-JavaScript Communication
      9. Accessing the Document Object Model from an Applet
      10. Invoking JavaScript Functions from an Applet
      11. Evaluating a JavaScript Statement from an Applet
      12. Setting the Applet Parameter
      13. Applet-to-Applet Communication Through JavaScript
      14. Direct Applet-to-Applet Communication
      15. Summary
  9. III. Developing Scalable Applications with EJB
    1. 28. Enterprise JavaBeans
      1. What Is an Enterprise JavaBean?
      2. Benefits of EJB
      3. EJB Application Architecture
      4. The Six EJB Roles
        1. Bean Developer
        2. Application Assembler
        3. Deployer
        4. System Administrator
        5. EJB Container Provider
        6. EJB Server Provider
      5. Types of Enterprise Beans
      6. Writing Your First Enterprise Bean
        1. Writing and Compiling the Adder Bean
        2. Writing the Deployment Descriptor
        3. Creating a Deployment File
        4. Deployment
      7. EJB Explained
        1. The Home Interface
        2. The Remote Interface
        3. The Enterprise Bean Class
        4. The Deployment Descriptor
      8. Writing Client Applications
        1. Java Naming and Directory Interface (JNDI)
          1. The javax.naming.Context Interface
          2. The javax.naming.InitialContext Class
      9. Creating a Bean’s Instance
        1. A Java Client Application
        2. Calling the Bean from a JSP Page
      10. Summary
    2. 29. The Session Bean
      1. What Is a Session Bean?
      2. Stateful and Stateless Session Beans
        1. Passivation and Activation of Stateful Session Beans
        2. A Stateful Session Bean’s Session
      3. Writing a Session Bean
        1. The javax.ejb.SessionBean Interface
        2. An Example of a Session Bean
        3. The javax.ejb.SessionContext Interface and the javax.ejb.EJBContext Interface
        4. Using a Stateful Session Bean from a Servlet/JSP Page
        5. Deployment Descriptor
      4. The Tassie Online Bookstore Example
        1. The Database
        2. The Enterprise Beans
          1. The Search Stateless Session Bean
          2. The BookDetails Stateless Session Bean
          3. The Cart Stateful Session Bean
        3. The EJB Application Deployment Descriptor
        4. Creating the Deployment File
        5. Deploying in JBoss
        6. The Servlets
          1. The SearchServlet Servlet
          2. The BookDetailsServlet Servlet
          3. The AddToCartServlet Servlet
          4. The CheckCartServlet Servlet
        7. Deploying the Client Application
      5. Summary
    3. 30. Entity Beans
      1. What Is an Entity Bean?
      2. The Remote Interface
      3. The Home Interface
        1. Create Methods
        2. Finder Methods
        3. Remove Methods
      4. The Primary Key Class
      5. The Entity Bean
        1. The javax.ejb.EntityBean Interface
        2. Activation and Passivation
        3. Create Methods
        4. Finder Methods
        5. Remove Methods
        6. Other Methods
        7. The javax.ejb.EntityContext Interface
      6. Two Types of Entity Beans
      7. Writing a BMP Entity Bean
        1. The Remote Interface
        2. The Home Interface
        3. The Primary Key Class
        4. The Entity Bean
        5. Deployment Descriptor
        6. Packaging Your Entity Bean
        7. Client Application
      8. Writing a CMP Entity Bean
        1. The Remote Interface
        2. The Home Interface
        3. The Entity Bean Class
        4. The Deployment Descriptor
        5. Packaging Your CMP Entity Bean
        6. The Client Application
      9. Summary
    4. 31. EJB Query Language
      1. EJB QL Syntax
        1. The SELECT Clause
        2. The FROM Clause
        3. The WHERE Clause
          1. Literal
          2. Identification Variable
          3. Path Expression
          4. Input Parameters
          5. Conditional Expression Composition
          6. Operators and Operator Precedence
          7. Between Expressions
          8. In Expressions
          9. Like Expressions
          10. Null Comparison Expressions
          11. Empty Collection Comparison Expressions
          12. Collection Member Expressions
          13. Functional Expressions
      2. EJB QL BNF
      3. Summary
    5. 32. Java Message Service
      1. Introduction to Messaging
      2. The JMS API
      3. The JMS API Messaging Domains
        1. Publish/Subscribe (pub/sub)
        2. Point-to-Point (PTP)
      4. The JMS Object Model
        1. ConnectionFactory
        2. Destination
        3. Connections
        4. Session
        5. MessageProducer
        6. MessageConsumer
        7. Message
      5. Writing JMS Clients
      6. Summary
    6. 33. Message-Driven Beans
      1. What Is a Message-Driven Bean?
      2. The Application Programming Interface
        1. The javax.ejb.MessageDrivenBean Interface
        2. The javax.ejb.MessageDrivenContext Interface
        3. Accessing a Message-Driven Bean
      3. Writing a Message-Driven Bean
        1. The Message-Driven Bean Class
        2. The Deployment Descriptor
        3. Configuring the jboss.xml File
        4. Packaging Your Message-Driven Bean
        5. Writing the Client Application
      4. Summary
  10. IV. Appendixes
    1. A. Tomcat Installation and Configuration
      1. Tomcat Installation
        1. Windows NT/2000 Installation
        2. UNIX/Linux Installation
      2. Tomcat Directories
      3. Changing the Port
      4. Constructing a JSP Application
    2. B. The javax.servlet Package Reference
      1. Interfaces
        1. Filter
          1. Signature
          2. Methods
        2. FilterChain
          1. Signature
          2. Methods
        3. FilterConfig
          1. Signature
          2. Methods
        4. RequestDispatcher
          1. Signature
          2. Methods
        5. Servlet
          1. Signature
          2. Methods
        6. ServletConfig
          1. Signature
          2. Methods
        7. ServletContext
          1. Signature
          2. Methods
        8. ServletContextAttributeListener
          1. Signature
          2. Methods
        9. ServletContextListener
          1. Signature
          2. Methods
        10. ServletRequest
          1. Signature
          2. Methods
        11. ServletResponse
          1. Signature
          2. Methods
        12. SingleThreadModel
          1. Signature
      2. Classes
        1. GenericServlet
          1. Signature
          2. Methods
        2. ServletContextAttributeEvent
          1. Signature
          2. Methods
        3. ServletContextEvent
          1. Signature
          2. Methods
        4. ServletInputStream
          1. Signature
          2. Methods
        5. ServletOutputStream
          1. Signature
          2. Methods
        6. ServletRequestWrapper
          1. Signature
          2. Methods
        7. ServletResponseWrapper
          1. Signature
          2. Methods
      3. Exceptions
        1. ServletException
          1. Signature
          2. Method
        2. UnavailableException
          1. Signature
          2. Methods
    3. C. The javax.servlet.http Package Reference
      1. Interfaces
        1. HttpServletRequest
          1. Signature
          2. Fields
          3. Methods
        2. HttpServletResponse
          1. Signature
          2. Fields
          3. Methods
        3. HttpSession
          1. Signature
          2. Methods
        4. HttpSessionActivationListener
          1. Signature
          2. Methods
        5. HttpSessionAttributeListener
          1. Signature
          2. Methods
        6. HttpSessionBindingListener
          1. Signature
          2. Methods
        7. HttpSessionContext
        8. HttpSessionListener
          1. Signature
          2. Methods
      2. Classes
        1. Cookie
          1. Signature
          2. Methods
        2. HttpServlet
          1. Signature
          2. Methods
        3. HttpServletRequestWrapper
          1. Signature
          2. Methods
        4. HttpServletResponseWrapper
          1. Signature
          2. Methods
        5. HttpSessionBindingEvent
          1. Signature
          2. Methods
        6. HttpSessionEvent
          1. Signature
          2. Methods
        7. HttpUtils
    4. D. The javax.servlet.jsp Package Reference
      1. Interfaces
        1. HttpJspPage
          1. Signature
          2. Method
        2. JspPage
          1. Signature
          2. Methods
      2. Classes
        1. JspEngineInfo
          1. Signature
          2. Method
        2. JspException
          1. Signature
          2. Method
        3. JspFactory
          1. Signature
          2. Methods
        4. JspTagException
          1. Signature
        5. JspWriter
          1. Signature
          2. Fields
          3. Methods
        6. PageContext
          1. Signature
          2. Fields
          3. Methods
    5. E. The javax.servlet.jsp.tagext Package Reference
      1. Interfaces
        1. BodyTag
          1. Signature
          2. Fields
          3. Methods
        2. IterationTag
          1. Signature
          2. Field
          3. Method
        3. Tag
          1. Signature
          2. Fields
          3. Methods
        4. TryCatchFinally
          1. Signature
          2. Methods
      2. Classes
        1. BodyContent
          1. Signature
          2. Methods
        2. BodyTagSupport
          1. Signature
          2. Methods
        3. PageData
          1. Signature
          2. Methods
        4. TagAttributeInfo
          1. Signature
          2. Field
          3. Methods
        5. TagData
          1. Signature
          2. Field
          3. Methods
        6. TagExtraInfo
          1. Signature
          2. Methods
        7. TagInfo
          1. Signature
          2. Fields
          3. Methods
        8. TagLibraryInfo
          1. Signature
          2. Methods
        9. TagLibraryValidator
          1. Signature
          2. Methods
        10. TagSupport
          1. Signature
          2. Methods
        11. TagVariableInfo
          1. Signature
          2. Methods
        12. VariableInfo
          1. Signature
          2. Fields
          3. Methods
    6. F. JBoss Installation and Configuration
      1. System Requirements
      2. Installing JBoss
        1. Windows Installations
        2. Linux Installations
      3. Directory Structure
        1. bin
        2. lib and lib/ext
        3. db
        4. deploy
        5. log
        6. conf
        7. client
      4. Configuration
      5. Running JBoss
      6. Deployment
      7. JBoss and Tomcat
      8. Summary
    7. G. Related Resources
      1. J2EE
      2. Servlet
      3. JSP
      4. Tag Library
      5. Servlet/JSP Containers
      6. JDBC
      7. JNDI
      8. JMS
      9. EJB
      10. J2EE Server
    8. H. What’s On the CD-ROM?
      1. Read This Before Opening the Software
      2. GNU LESSER GENERAL PUBLIC LICENSE
        1. Preamble
      3. GNU LESSER GENERAL PUBLIC LICENSE
      4. NO WARRANTY
        1. How to Apply These Terms to Your New Libraries