Table of Contents. Introduction... xxi

Similar documents
Table of Contents. Introduction...xxix

This course is intended for Java programmers who wish to write programs using many of the advanced Java features.

Fast Track to Java EE 5 with Servlets, JSP & JDBC

Fast Track to Java EE

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

Advance Java. Configuring and Getting Servlet Init Parameters per servlet

Java.. servlets and. murach's TRAINING & REFERENCE 2ND EDITION. Joel Murach Andrea Steelman. IlB MIKE MURACH & ASSOCIATES, INC.

Oracle 10g: Build J2EE Applications

Introduction to JSP and Servlets Training 5-days

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

ive JAVA EE C u r r i c u l u m

Contents at a Glance

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

/ / JAVA TRAINING

Watch Core Java and Advanced Java Demo Video Here:

Introduction to J2EE...xxvii. Chapter 1: Introducing J2EE... 1 Need for Enterprise Programming... 3 The J2EE Advantage... 5

1Z Java EE 6 Web Component Developer Certified Expert Exam Summary Syllabus Questions

ADVANCED JAVA TRAINING IN BANGALORE

Specialized - Mastering JEE 7 Web Application Development

JAVA 2 ENTERPRISE EDITION (J2EE)

HttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests

COPYRIGHTED MATERIAL

a. Jdbc:ids://localhost:12/conn?dsn=dbsysdsn 21. What is the Type IV Driver URL? a. 22.

ADVANCED JAVA COURSE CURRICULUM

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

JAVA MICROSERVICES. Java Language Environment. Java Set Up. Java Fundamentals. Packages. Operations

Questions and Answers

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Java 2 Platform, Enterprise Edition: Platform and Component Specifications

Developing Applications with Java EE 6 on WebLogic Server 12c

Web Component Development with Servlet and JSP Technologies, Java EE 6

1 CUSTOM TAG FUNDAMENTALS PREFACE... xiii. ACKNOWLEDGMENTS... xix. Using Custom Tags The JSP File 5. Defining Custom Tags The TLD 6

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

"Charting the Course... Java Programming Language. Course Summary

Advanced Java Programming SRM UNIVERSITY FACULTY OF SCIENCE AND HUMANITIES DEPARTMENT OF COMPUTER SCIENCE

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Advanced Java Programming

Projects. How much new information can fit in your brain? Corporate Trainer s Profile TECHNOLOGIES

112-WL. Introduction to JSP with WebLogic

4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Java J Course Outline

JavaEE Interview Prep

Java Training Center, Noida - Java Expert Program

Java Enterprise Edition

Module 3 Web Component

Servlet Fudamentals. Celsina Bignoli

Java EE 6: Develop Web Applications with JSF

Table of Contents Fast Track to Java EE 5 with Servlets/JSP and JDBC

112. Introduction to JSP

CS506 Web Design & Development Final Term Solved MCQs with Reference

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

object/relational persistence What is persistence? 5

Complete Java Contents

Java Programming Course Overview. Duration: 35 hours. Price: $900

Java SE7 Fundamentals

JAVA SERVLET. Server-side Programming INTRODUCTION

Course Content for Java J2EE

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

The Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4

Java/J2EE Interview Questions(255 Questions)

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Page 1

LTBP INDUSTRIAL TRAINING INSTITUTE

UNIT -I PART-A Q.No Question Competence BTL

Data Source Name (Page 150) Ref: - After creating database, you have to setup a system Data Source Name (DSN).

Ch04 JavaServer Pages (JSP)

Unit 5 JSP (Java Server Pages)

SCBCD EXAM STUDY KIT. Paul Sanghera CX JAVA BUSINESS COMPONENT DEVELOPER CERTIFICATION FOR EJB MANNING. Covers all you need to pass

Java Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1

One application has servlet context(s).

Core Java. Basics of Java. String Handling. OOPS Concepts. Exception Handling

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Adobe Experience Manager

Kyle Brown Knowledge Systems Corporation by Kyle Brown and Knowledge Systems Corporation

Contents at a Glance. vii

Building Web Applications With The Struts Framework

Java SE 8 Fundamentals

Java EE 7: Back-End Server Application Development

"Charting the Course... SharePoint 2007 Hands-On Labs Course Summary

COMP9321 Web Application Engineering

Oracle Developer Day

JAVA SYLLABUS FOR 6 MONTHS

CO Java EE 7: Back-End Server Application Development

CORE JAVA 1. INTRODUCATION

Database. Request Class. jdbc. Servlet. Result Bean. Response JSP. JSP and Servlets. A Comprehensive Study. Mahesh P. Matha

Enterprise Java Unit 1-Chapter 2 Prof. Sujata Rizal Java EE 6 Architecture, Server and Containers

JDBC [Java DataBase Connectivity]

AN ISO 9001:2008 CERTIFIED COMPANY ADVANCED. Java TRAINING.

JavaServer Pages. What is JavaServer Pages?

JAVA & J2EE UNIT -1 INTRODUCTION

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.

J2EE Interview Questions

WEB DEVELOPMENT COURSE

GUJARAT TECHNOLOGICAL UNIVERSITY

Acknowledgments About the Authors

Transcription:

Introduction... xxi Chapter 1: Getting Started with Web Applications in Java... 1 Introduction to Web Applications... 2 Benefits of Web Applications... 5 Technologies used in Web Applications... 5 Describing Java Servlet... 5 Describing JSP... 7 Describing ODBC and JDBC... 8 Introduction to Web Architecture Models... 9 Describing the Model-1 Architecture... 9 Describing the Model-2 Architecture... 10 Introduction to the MVC Architecture... 11 Describing the Model Component... 12 Describing the View Component... 12 Describing the Controller Component... 13 Summary... 13 Exercise... 13 Chapter 2: Getting Started with JDBC... 15 Introducing ODBC... 16 Defining ODBC... 16 Listing Features of ODBC... 17 Describing the ODBC Components... 18 Describing the ODBC Architecture... 19 Introducing JDBC... 20 Describing Components of JDBC... 22 Listing Features of JDBC... 22 Listing New Features in JDBC 4.2... 24

viii Exploring the JDBC Architecture... 26 The Type-1 Driver... 28 The Type-2 Driver (Java to native API)... 29 The Type-3 Driver (Java to Network Protocol/All Java Driver)... 31 The Type-4 Driver (Java to Database protocol)... 32 Summary... 33 Exercise... 34 Chapter 3: Working with JDBC APIs... 35 Introducing JDBC API... 36 Explaining the Types of JDBC APIs... 37 Listing the New APIs and Features Added to JDBC 4.2... 39 Describing the Major Classes and Interfaces... 40 Communicating with Databases by using JDBC APIs... 47 Step 1: Obtaining a Connection... 47 Step 2: Creating a JDBC Statement Object... 49 Step 3: Executing SQL Statements... 50 Step 4: Closing the Connection... 50 Understanding Various JDBC Drivers... 50 The OCI8 Driver for Oracle... 50 The IDS Driver... 51 Oracle Thin Driver... 51 Summary... 51 Exercise... 52 Chapter 4: Implementing JDBC Statements and ResultSets... 53 Describing JDBC Statements... 54 Working with the Statement Interface... 54 Exploring the Methods of Statement... 54 Using Statement... 56 Working with the PreparedStatement Interface... 60 Comparing Statement and PreparedStatement Objects... 60 Describing setxxx()methods of PreparedStatement... 62 Using PreparedStatement... 63 Using PreparedStatement with Parameters... 64 Exploring the Usage of the PreparedStatement Object... 67 Listing the Advantages and Disadvantages of PreparedStatement... 67 Working with the CallableStatement Interface... 67 Describing Stored Procedures... 68 Listing the Benefits of Working with a Stored Procedure... 68

Using CallableStatement... 69 Using CallableStatement with Parameters... 70 Calling Functions by Using CallableStatement... 72 Using Cursors in CallableStatement... 74 Comparing Procedure and Function... 76 Working with the ResultSet Interface... 76 Describing the Methods of ResultSet... 77 Using ResultSet... 79 Retrieving All the Rows from a Table... 82 Retrieving a Particular Column Using ResultSet... 84 Handling NULL Values... 87 Working with the ResultSetMetaData Interface... 88 Describing ResultSetMetaData... 88 Using ResultSetMetaData... 89 Creating SQLEditor in Java... 91 Creating the Command-Based SQLEditor... 91 Creating the Windows-Based SQLEditor... 93 Using Advanced Concepts of ResultSet... 97 Exploring Characteristics of the ResultSet Object... 97 Setting the ResultSet Type and ResultSet Concurrency... 99 Using ResultSet Objects to Manipulate Data... 105 Closing the Connection... 110 Closing the Statement and ResultSet... 111 Working with the DatabaseMetaData Interface... 111 Retrieving Database and Driver Details... 113 Summary... 114 Exercise... 115 Chapter 5: Describing Advanced JDBC Concepts... 117 Exploring SQL-99 Data Types... 118 The BLOB Data Type... 118 The CLOB and NCLOB Data Types... 122 The NCLOB Data Type... 125 The Struct (Object) Data Type... 125 The Array Data Type... 132 The Ref Data Type... 137 Methods for Using Advanced Data Types... 137 Working with the ROWID Type... 138 Using the ROWID Object... 138 ix

The Lifetime of ROWID Validity... 138 Working with Batch Updates... 139 Using Batch Updates with the Statement Object... 140 Using Batch Updates with the PreparedStatement Object... 142 Describing SQL/XML and XML Support... 144 Creating the SQLXML Object... 145 Retrieving SQLXML Values... 145 Retrieving Auto-Generated Keys... 145 Working with RowSet in JDBC... 148 Connected RowSet... 148 Disconnected RowSet... 148 Using RowSet at Design Time... 149 Using RowSets at Runtime... 149 Exploring Connection Pooling... 150 Working with Connection Pool... 152 Working with Transactions... 153 Describing ACID Properties... 153 Types of Transactions... 154 Performing Transaction Management... 155 Describing the Wrapper Interface... 158 The iswrapperfor() Method... 158 The unwrap() Method... 158 Describing SQLException... 159 Summary... 160 Exercise... 161 Chapter 6: Understanding Java Servlet... 163 Understanding the Need for Server-Side Extensions... 164 Introducing CGI... 164 Introducing Java Servlet... 166 Advantages of a Servlet... 166 New Features of Servlet 3.1... 166 Exploring the Servlet Container... 167 Describing the Request Processing Mechanism... 167 Describing the Types of Servlet Container Configurations... 168 Introducing the Servlet API... 169 Describing the javax.servlet Package... 170 Describing the javax.servlet.http Package... 171 Implementing a Servlet Object... 171 x

The javax.servlet.servlet Interface... 172 The javax.servlet.servletconfig Interface... 172 Understanding the Servlet LifeCycle... 172 Describing the Stages of the Servlet LifeCycle... 173 Exploring the Servlet Life Cycle Methods... 176 Developing the First Servlet Application... 177 Creating the home.html Page... 178 Creating the LifeCycleServlet... 178 Creating the Deployment Descriptor... 179 Deploying Web Application... 179 Running the LifeCycle Application... 180 Understanding the Request Processing Workflow... 182 Request Navigation... 182 Request Delegation... 183 Working with the GenericServlet Class... 185 Exploring Methods of the GenericServlet Class... 185 Using the GenericServlet Class... 187 Summary... 189 Exercise... 190 Chapter 7: Understanding Request Processing and HTTP... 191 Implementing the ServletRequest Interface... 192 Managing the ServletRequest Object as a Throwaway Object... 192 Managing the ServletRequest Object Pool... 192 Working with Request Parameters... 193 Working with Initialization Parameters... 198 Exploring the Need for Initialization Parameters... 199 Retrieving Initialization Parameters... 199 Handling Servlet Initialization Parameters... 199 Working with Context Initialization Parameters... 204 Retrieving Context Initialization Parameters... 204 Using Context Initialization Parameters... 204 Understanding ServletResponse... 214 Understanding Request Dispatching... 216 Navigation... 216 Delegation... 217 Dispatching the Request... 217 Getting a RequestDispatcher object... 217 Understanding the include() and forward() Methods of RequestDispatcher... 219 xi

Working with RequestDispatcher... 223 Describing Request Attributes... 228 Working with Request Attributes... 229 Describing HTTP Basic... 235 Describing HTTP Status Codes... 236 Describing the HttpServletRequest and HttpServletResponse Interfaces... 237 Working with HttpServletRequest... 238 Working with HttpServletResponse... 238 Handling the HttpServletRequest and HttpServletResponse Interfaces... 241 Describing HttpServlet... 246 The HttpServlet Lifecycle... 247 Summary... 247 Exercise... 248 Chapter 8: Handling Sessions in Servlet... 249 Introducing Session Tracking... 250 Describing URL Rewriting... 251 Using Query String for URL Rewriting... 251 Using Path Info for URL Rewriting... 251 Listing the Disadvantages of URL Rewriting... 252 Considering Situations to Use URL Rewriting... 252 Exploring Hidden Form Fields... 252 Listing the Advantages and Disadvantages of Hidden Form Fields... 253 Considering the Situations to Use Hidden Form Fields... 253 Working with URL Rewriting and Hidden Form Fields... 253 Creating the SiteHome.html Page... 253 Creating the Login.html Page... 254 Creating the Send.html Page... 254 Creating the DriverConnection.java File... 254 Creating the UserDAO.java File... 255 Creating the LoginServlet.java Servlet... 255 Creating the Mail.java File... 257 Creating the MailsDAO.java File... 258 Creating the InboxServlet Servlet... 259 Creating the ViewMailServlet Servlet... 261 Creating the SendReplyServlet Servlet... 262 Creating the Deployment Descriptor File... 263 Creating Database Tables... 264 Creating Directory Structure... 265 xii

Running the Application... 265 Describing Cookies... 268 Listing the Advantages and Disadvantages of Cookies... 268 Considering the Situations to Use Cookies... 269 Using Cookies... 269 Creating the Home.html File... 269 Creating the AddCookieServlet.java File... 269 Creating the GetCookieServlet.java File... 270 Creating the web.xml File... 270 Running the Application... 271 Exploring HttpSession... 273 Creating a Session Object... 273 Locating a Session Object Associated with the Current Request... 273 Storing Information in a Session... 274 Attaching Session Identity to URLs... 274 Looking Up Information in a Session... 275 Discarding Completed or Abandoned Sessions... 276 Listing the Advantages and Disadvantages of HttpSession... 276 Considering the Situations to Use HttpSession... 276 Working with HttpSession... 277 Creating the Login.html File... 277 Creating the DriverConnection.java File... 278 Creating the UserDAO.java File... 278 Creating the Product.java File... 279 Creating the ProductsDAO.java File... 279 Creating the LoginServlet.java File... 280 Creating the UserHomeServlet.java File... 281 Creating the GetProductsServlet.java File... 282 Creating the AddProductServlet.java File... 284 Creating the GetCartDetailsServlet.java File... 285 Creating the LogoutServlet.java File... 287 Creating the web.xml File... 287 Describing ServletContext Attributes... 292 Context Attributes in a Distributed Container... 292 Describing Scopes of Web Application Objects... 292 Exploring the Single Thread Model... 293 Explaining the Need of Synchronization in Servlets... 294 Implementing SingleThreadModel... 294 Describing the ServletOutputStream Class... 295 xiii

Using ServletOutputStream... 295 Summary... 297 Exercise... 298 Chapter 9: Implementing Filters, Listeners, and Wrappers... 299 Exploring Filters... 300 Filter Interception Design Pattern... 300 How the Servlet Container Invokes Filter... 301 Filter API... 302 Working With Filters... 303 Event Classes... 309 Event Interfaces... 309 Describing Listeners... 309 Need of Event Programming and Importance of Listeners... 309 Types of Listeners... 310 Describing Listener Interfaces... 310 Describing Wrappers... 329 Need of Wrappers... 329 Types of Wrapper Classes... 329 Using Wrappers... 331 Summary... 335 Exercise... 336 Chapter 10: Applet-Servlet Communication... 337 Concepts of Trusted and Untrusted Applets... 338 HTTP and Raw Socket Connections... 338 Advantages and Disadvantages of HTTP Connection with CGI Program... 339 Advantages and Disadvantages of Raw Socket Connection with a Non-HTTP Server... 339 Servlets and Object Serialization... 340 Advantages and Disadvantages of Servlets and Object Serialization... 340 JDBC and RMI... 340 Advantages and Disadvantages of RMI for Applet-Servlet Communication... 340 Applet to Servlet Communication... 341 An Example Using Applet in Servlet... 341 Summary... 343 Exercise... 344 Chapter 11: Interservlet Communication... 345 Types of InterServlet Communication... 346 Direct Servlet Manipulation... 346 xiv

Viewing and Saving the Currently Loaded Servlets... 347 Saving the State of All the Servlets Currently Loaded... 348 Servlet Reuse... 348 Reusing ChatServlet... 349 Servlet Collaboration... 351 Collaboration through the System Properties List... 351 Collaboration through a Shared Object... 351 Collaboration through Inheritance... 352 Summary... 352 Exercise... 352 Chapter 12: New Features in Servlet 3.1... 353 Asynchronous Request Processing... 354 Non-Blocking I/O Mechanism... 354 HTTP Protocol Upgrade Mechanism... 355 Security Enhancement... 355 Summary... 355 Exercise... 356 Chapter 13: Introduction to JSP... 357 Understanding JSP... 358 Advantages of JSP over Servlets... 358 Introducing the Tag-based Approach... 360 Describing the JSP Architecture... 360 Describing the JSP Life Cycle... 361 The Page Translation Stage... 362 The Compilation Stage... 364 The Loading and Initialization Stage... 364 The Request Handling Stage... 364 The Destroying Stage... 365 Creating Simple JSP Pages... 365 Summary... 367 Exercise... 368 Chapter 14: Working with JSP Basic Tags and Implicit Objects... 369 Exploring Scripting Tags... 370 Types of Scripting Tags... 370 Working with JSP Scripting Tags... 372 Exploring Implicit Objects... 374 Features of Implicit Objects... 374 xv

xvi Types of Implicit Objects... 374 Working with Implicit Objects... 376 Exploring Directive Tags... 380 Types of Directive Tags... 380 Working with JSP Directive Tags... 382 Summary... 386 Exercise... 386 Chapter 15: Working with JavaBeans and Action Tags in JSP... 387 What is JavaBean?... 388 Advantages of using JavaBeans... 388 Action Tags... 388 Describing the Include Tag... 389 Describing the Forward Tag... 390 Describing the Param Tag... 390 Describing the <usebean> Tag... 394 Describing the <setproperty> Tag... 397 Describing the <getproperty> Tag... 399 Plugin... 399 Params... 400 Fallback... 400 Attribute... 400 Body... 401 Element... 401 Text... 402 Declaring a Bean in a JSP... 402 Creating a Bean... 402 Declaring the Bean in a JSP... 403 Accessing the Bean Properties... 403 Generating Dynamic Content within a JSP... 404 Deploying and Running Application... 405 Summary... 407 Exercise... 408 Chapter 16: Enhancing the JSP Tags Support... 409 Custom Tags... 410 Need of Custom Tags... 410 Elements of Custom Tags... 411 The Tag Extension API... 414 Empty Tags... 416

Empty Tag Handler Life Cycle... 416 Using Empty Tags... 417 Body Content Tag Interface... 424 Body Tag Handler Life Cycle... 424 Using BodyContent Tag... 425 Iteration tag Interface... 433 Iteration Tag Handler Life Cycle... 433 Simple Tags... 437 Life Cycle of Simple Tag Handlers... 437 Differences between Simple Tag and Classic Tag Handlers... 439 The TryCatchFinally Interface... 439 Exception Handling... 440 Summary... 441 Exercise... 441 Chapter 17: Understanding JSP Expression Language... 443 Basic Syntax of using EL... 444 Types of EL Expressions... 444 Tag Attribute Types... 446 Resolving EL Expressions... 447 EL Operators... 448 JSP EL Reserve Words... 450 Implicit EL Objects... 451 Introducing Functions with EL... 457 Using EL Functions... 457 Summary... 459 Exercise... 460 Chapter 18: Implementing Internationalization... 461 Introducing Internationalization... 462 Java and Internationalization... 462 Describing the Locale Class... 462 Describing the ResourceBundle Class... 466 Internationalizing Web Applications... 470 Creating the JSP Views... 471 Creating the I18NServlet Class... 472 Creating the Resource Bundles... 472 Configuring the Application... 473 Designing the Application Directory Structure... 474 Running the Application... 474 xvii

xviii Summary... 475 Exercise... 476 Chapter 19: Working with JSP Standard Tag Library (JSTL)... 477 Describing JSTL Core Tags... 478 General-Purpose Tags... 478 Conditional and Looping Tags... 481 Networking Tags... 488 Describing JSTL SQL Tags... 489 Types of JSTL SQL Tags... 489 Using JSTL SQL Tags... 491 JSTL Formatting Tags... 494 Basic Formatting Tags... 494 Number Formatting Tags... 498 Date Formatting Tags... 501 Time Zone Formatting Tags... 504 JSTL XML Tags... 506 XML Core Tags... 507 XML Flow Control Tags... 508 XML Transformation Tags... 509 Implementing JSTL Tags... 510 JSTL Functions... 513 Summary... 515 Exercise... 515 Chapter 20: Working with JavaServer Faces... 517 Introducing JSF... 518 Explaining the Features of JSF... 519 New Features of JSF 2.2... 520 Exploring the JSF Architecture... 520 Describing JSF Elements... 522 UI Component... 522 Renderer... 523 Validators... 524 Backing Beans... 524 Converters... 525 Events and Listeners... 526 Message... 528 Navigation... 528 Exploring the JSF Request Processing Life cycle... 529

The Restore View Phase... 530 The Apply Request Values Phase... 530 The Process Validation Phase... 531 The Update Model Values Phase... 531 The Invoke Application Phase... 531 The Render Response Phase... 531 Exploring JSF Tag Libraries... 532 JSF HTML Tags... 533 JSF Core Tags... 549 Exploring Backing Beans... 559 An Example of Using a Backing Bean... 560 Using a Backing Bean Method as an Event Handler... 561 Working with Managed Beans... 562 JSF Input Validation... 564 Using the Validator Method... 564 Using Validators... 564 JSF Type Conversion... 565 Handling Page Navigation in JSF... 566 Configuring JSF Applications... 567 Setting the web.xml File... 567 Configuring the faces-config.xml File... 568 Creating a Simple JSF Application... 569 Creating the views... 570 Creating Backing Bean... 572 Configuring the Application... 573 Summary... 576 Exercise... 578 Chapter 21: Java EE Design Patterns... 579 Describing the Java EE Application Architecture... 580 Introducing a Design Pattern... 581 Discussing the Role of Design Patterns... 581 Exploring Types of Patterns... 581 The Front Controller Pattern... 584 The Composite View Pattern... 586 The Composite Entity Pattern... 588 The Intercepting Filter Pattern... 590 The Transfer Object Pattern... 592 The Session Facade Pattern... 594 xix

The Service Locator Pattern... 596 The Data Access Object Pattern... 598 The View Helper Pattern... 600 The Dispatcher View Pattern... 602 The Service to Worker Pattern... 604 Summary... 605 Exercise... 606 Chapter 22: Implementing Security in Web Applications... 607 Exploring JAAS... 608 Implementing Authentication with JAAS... 608 Describing Authorization in Web Applications... 609 Implementing Data Integrity with JAAS API... 610 Exploring HTTP Authentication Mechanisms... 610 Describing HTTP Basic Authentication... 610 Describing Form-based Authentication... 611 Describing Client-Certificate Authentication... 611 Describing HTTP Digest Authentication... 611 Securing Web Applications... 612 Describing Declarative Security... 612 Describing Programmatic Security... 619 Summary... 630 Exercise... 630 Appendix A: Introduction to DBMS... 631 Appendix B: Hospital Management System... 639 Answers... 643 Index... 653 xx