You are previewing Web Technology: Theory and Practice.
O'Reilly logo
Web Technology: Theory and Practice

Book Description

Web Technology: Theory and Practice introduces the keyset technologies that are currently used to create applications on web. It explains the principal HTML concept, the client-side used JavaScript and the server-side used JSP with relevant coding examples. Emphasis is given on XML with examples including XML Transformations (XSTL). Apart from this, the book also dwells into the alternatives to XML such as the JSON.

Table of Contents

  1. Cover
  2. Title Page
  3. Brief Contents
  4. Contents
  5. Foreword
  6. Preface
  7. 1. Web Foundations
    1. 1.1 The Evolution of the Web
    2. 1.2 A Peek into the History of the Web
    3. 1.3 Internet Applications
    4. 1.4 Networks
      1. 1.4.1 From Moore to Metcalf
    5. 1.5 TCP/IP
      1. 1.5.1 Internet Address Structure
      2. 1.5.2 IPv6
    6. 1.6 Higher Level Protocols
      1. 1.6.1 FTP
      2. 1.6.2 Telnet
      3. 1.6.3 E-mail Related Protocols
      4. 1.6.4 HTTP
    7. 1.7 Important Components of the Web
      1. 1.7.1 Firewalls
      2. 1.7.2 Routers
      3. 1.7.3 Browser
      4. 1.7.4 Browser Caches
    8. 1.8 Web Search Engines
    9. 1.9 Web Servers
    10. 1.10 Application Server
    11. 1.11 Internet Organizations' Who's Who
      1. 1.11.1 ISOC – Internet Society
      2. 1.11.2 IETF – Internet Engineering Task Force
      3. 1.11.3 IESG – Internet Engineering Steering Group
      4. 1.11.4 IANA – Internet Assigned Numbers Authority
      5. 1.11.5 IAB – Internet Architecture Board
      6. 1.11.6 IRTF – Internet Research Task Force
      7. 1.11.7 W3C – World Wide Web Consortium
    12. 1.12 Summary
      1. Exercises
      2. Caselet Activity
  8. 2. Client-Side—HTML
    1. 2.1 SGML Framework
    2. 2.2 HTML
    3. 2.3 HTML Tags
      1. 2.3.1 Attributes
    4. 2.4 HTML File Structure
    5. 2.5 Common HTML Tags
      1. 2.5.1 HTML Tags
      2. 2.5.2 Meta
      3. 2.5.3 Title
      4. 2.5.4 Body
      5. 2.5.5 Headings
      6. 2.5.6 Anchor
      7. 2.5.7 Lists
      8. 2.5.8 Table
      9. 2.5.9 Frames
      10. 2.5.10 HTML Forms
    6. 2.6 XHTML
      1. 2.6.1 HTML Validator
    7. 2.7 Block and Inline Elements
    8. 2.8 HTML5
    9. 2.9 Summary
      1. Exercises
      2. Project Activities
      3. Caselet Activity
  9. 3. Client-Side—CSS
    1. 3.1 CSS Declarations
    2. 3.2 Using CSS
    3. 3.3 Sample CSS File
    4. 3.4 Selectors
    5. 3.5 Box Model
      1. 3.5.1 Concept
      2. 3.5.2 Padding
    6. 3.6 Float
      1. 3.6.1 Using Float and Clear
      2. 3.7 Z-Index
      3. 3.7.1 Websites
    7. 3.8 Benefits of CSS
    8. 3.9 Summary
    9. Exercises
      1. Project Activities
      2. Caselet Activity
  10. 4. Client-Side—Behavior
    1. 4.1 JavaScript
    2. 4.2 A Bit of History About JavaScript
    3. 4.3 Organization of the Language
      1. 4.3.1 Basics of Client-side JavaScript
    4. 4.4 An Example
    5. 4.5 Data Types
      1. 4.5.1 Special Numbers
      2. 4.5.2 Boolean
      3. 4.5.3 Constants
      4. 4.5.4 Typeof
    6. 4.6 Conversions
    7. 4.7 Basic String Operations
      1. 4.7.1 Other Common String Operations
      2. 4.7.2 String Encoding for URIs
      3. 4.7.3 Reference or Value
      4. 4.7.4 Regular Expressions
    8. 4.8 Date Object
      1. 4.8.1 A Note on Including JavaScript File
    9. 4.9 Arrays
      1. 4.9.1 Array Implementation Basics
      2. 4.9.2 Array and String Operations
    10. 4.10 Variables and Functions
      1. 4.10.1 Function Literals
      2. 4.10.2 Function Arguments
      3. 4.10.3 Anonymous Functions
      4. 4.10.4 Inner Functions
      5. 4.10.5 Closures
    11. 4.11 Closure Scenarios
      1. 4.11.1 Simplify Scope
      2. 4.11.2 Return Methods from Functions
    12. 4.12 Summary of Ways to Use a Function
      1. 4.12.1 Client-side Cookies
    13. 4.13 The Concept of Classes
      1. 4.13.1 Creating Objects
      2. 4.13.2 Objects Through Function Constructors
      3. 4.13.3 Dynamic Addition of Methods—Prototype
      4. 4.13.4 Inheritance
    14. 4.14 Execution Contexts
    15. 4.15 DOM
      1. 4.15.1 The Bigger Picture of DOM
      2. 4.15.2 Representing DOM
      3. 4.15.3 DOM Traversal
      4. 4.15.4 Accessing Nodes Directly
      5. 4.15.5 Adding Dynamism—DOM Manipulation
    16. 4.16 Event Handling
      1. 4.16.1 Event Onclick
      2. 4.16.2 Event Onchange
      3. 4.16.3 Event Onload
      4. 4.16.4 Mouse Events
      5. 4.16.5 Default Event Listeners
      6. 4.16.6 Browser Specific Challenges
      7. 4.16.7 Event Propagation
      8. 4.16.8 Other Events
    17. 4.17 A Shopping Cart Table Sort Example
      1. 4.17.1 Method InnerHTML
    18. 4.18 Overall Observations About DOM
    19. 4.19 Ajax with JavaScript
      1. 4.19.1 Ajax Introduction
      2. 4.19.2 Scenarios
      3. 4.19.3 Technology Components Required for Ajax
      4. 4.19.4 XMLHttpRequest Object
      5. 4.19.5 A Look at the Steps Involved
      6. 4.19.6 Sample Ajax Code
      7. 4.19.7 Ajax – Points of Caution
    20. 4.20 JavaScript Security
      1. 4.20.1 File Handling and Execution
      2. 4.20.2 Same Origin Policy
      3. 4.20.3 Pop-up Windows
      4. 4.20.4 History
      5. 4.20.5 Mail Through a Form
      6. 4.20.6 Server Restriction
    21. 4.21 Closing Observations on JavaScript
      1. 4.21.1 Client Side Compatibility
      2. 4.21.2 Unobtrusive JavaScript
    22. 4.22 Summary
      1. Exercises
      2. Project Activities
      3. Caselet Activity
  11. 5. The Server Side
    1. 5.1 A Broad Outline
    2. 5.2 Behind the Scenes
    3. 5.3 Client Side Vs. Server Side
    4. 5.4 Transformation from Static to Dynamic Sites
      1. 5.4.1 Embedded Server-side Scripts in HTML
    5. 5.5 Java Servlets
      1. 5.5.1 Servlet Creation and Lifecycle
      2. 5.5.2 Lifecycle of a Servlet
      3. 5.5.3 A Simple Servlet Example
      4. 5.5.4 An Intermediate Web Application Architecture
    6. 5.6 Example—Read Environment Parameters
    7. 5.7 Accessing Parameter Data
      1. 5.7.1 Sharing Data Through Servlet Context
      2. 5.7.2 Trip Pooling Example
      3. 5.7.3 Thread Safety
    8. 5.8 State Management
      1. 5.8.1 Example—Session Basics
      2. 5.8.2 Cookies
    9. 5.9 Event Driven Tracking
      1. 5.9.1 Listeners and Events
      2. 5.9.2 Steps
      3. 5.9.3 Session Tracking Example (FavConnect)
      4. 5.9.4 Attribute Scopes
    10. 5.10 Summary
      1. Exercises
      2. Project Activities
      3. Caselet Activity
  12. 6. JSP
    1. 6.1 A Better Way
    2. 6.2 Why JSP?
    3. 6.3 A Brief History and Background
    4. 6.4 Overview
    5. 6.5 JSP Lifecycle
      1. 6.5.1 JSP Service Methods
    6. 6.6 Elements in a JSP Page
      1. 6.6.1 Declarations
      2. 6.6.2 Directives
      3. 6.6.3 Scriptlets
      4. 6.6.4 Expressions
      5. 6.6.5 Transfer Control
    7. 6.7 Implicit JSP Objects
    8. 6.8 JSP Object Scopes
    9. 6.9 FavConnect Example Modified
    10. 6.10 JSP Tags
      1. 6.10.1 Declarations
      2. 6.10.2 Directives
    11. 6.11 JSP Exceptions
      1. 6.11.1 Expressions
      2. 6.11.2 Scriptlet
      3. 6.11.3 Actions
    12. 6.12 Expression Language (EL)
    13. 6.13 JSP Standard Tag Library
    14. 6.14 A JSP Example
    15. 6.15 Custom Tag Library
    16. 6.16 JSP and Equivalent Technologies
    17. 6.17 Summary
      1. Exercises
      2. Project Activity
      3. Caselet Activity
  13. 7. The Business Layer—EJB Fundamentals
    1. 7.1 Layering
    2. 7.2 With Servlets
    3. 7.3 EJB Versions
    4. 7.4 Usage Scenarios
    5. 7.5 EJB Components
      1. 7.5.1 Session Beans
      2. 7.5.2 Message Driven Beans
      3. 7.5.3 Entity Beans
    6. 7.6 Lifecycle of an EJ Bean
    7. 7.7 A Shopping Cart—Simplified Example
    8. 7.8 Summary
      1. Exercises
      2. Project Activity
      3. Caselet Activity
  14. 8. XML
    1. 8.1 Introduction
    2. 8.2 The Need
    3. 8.3 XML Building Blocks
    4. 8.4 How It Works
      1. 8.4.1 Basic Structure
    5. 8.5 Characteristics
    6. 8.6 Scenarios for Handling XML
    7. 8.7 Valid XML Document
      1. 8.7.1 DTD
      2. 8.7.2 XSD-Schema
    8. 8.8 XML Transformations-XSL
      1. 8.8.1 XSLT
    9. 8.9 XML Parsing
      1. 8.9.1 SAX
      2. 8.9.2 DOM
      3. 8.9.3 Choosing Between DOM and SAX
      4. 8.9.4 Java Support for Parsing XML
    10. 8.10 JSON
    11. 8.11 Summary
      1. Exercises
      2. Project Activities
      3. Caselet Activity
  15. 9. Web Services
    1. 9.1 Tracing the Path of a Request-a Different View
    2. 9.2 Evolution of the Concept
    3. 9.3 Purpose
    4. 9.4 Standards
    5. 9.5 Use Cases
      1. 9.5.1 Sample Scenarios
      2. 9.5.2 Roles
    6. 9.6 Programming Models
    7. 9.7 SOAP Based Web Services
      1. 9.7.1 WSDL
      2. 9.7.2 SOAP
      3. 9.7.3 Structure of SOAP Messages
    8. 9.8 A Basic Example
      1. 9.8.1 Generating a Web Service
    9. 9.9 REST Based Web Services
      1. 9.9.1 REST Principles
      2. 9.9.2 Resource Orientation
    10. 9.10 Rest Based Web Services-An Example
      1. 9.10.1 Service Provider Side
      2. 9.10.2 Th e XML Document from the Service
      3. 9.10.3 Client Side
    11. 9.11 SOAP vs. REST
    12. 9.12 Case Study of an Online Store
      1. 9.12.1 Online Store Front
    13. 9.13 Web Services Endnote
    14. 9.14 Summary
      1. Exercises
      2. Project Activities
      3. Caselet Activity
  16. Appendix
  17. Acknowledgements
  18. Copyright