| Course Description | |
| Java Enterprise Edition is a powerful platform for building web applications. This platform offers all the advantages of developing in Java plus a comprehensive suite of server-side technologies. This course tells you what you need to know to design and build your own web applications. You'll learn the details of the key Java EE technologies and how to leverage the strengths of each, with special focus on Servlets and JSP. At the same time, you'll be learning about the big picture of Java Enterprise Edition and how to design web applications that are robust, efficient, and maintainable. If you want to deliver an application on the web, you'll find this course essential. Course Length: 5 Days Course Tuition: $1690 (US) |
|
| Prerequisites | |
| A working knowledge of Java | |
| Course Outline |
|
• Java EE Overview Java EE’s Place within Java Java EE - Distributed Multitier Applications Important J2EE/Java EE 5 APIs Commercial Java EE Products Common Commercial Java EE App Servers Enterprise Applications – The Three Pillars Persistent Storage Business Logic Presentation Logic Presentation Logic - Servlets Presentation Logic - JavaServer Pages • Java EE Architecture Multitiered Architecture Web-Based Architecture Web-Based Architecture with EJB Swing Client Architecture with EJB Supporting Both Web Clients and Rich Clients Playing Server Games SOA - Service Oriented Architecture Java EE Roles What’s Next? • How the Web Works Clients and Servers Client and Server Applications on the Web HTML - The Language of the Web Basic HTML Tags and a Basic HTML Page HTTP and Addressing Requests and Responses Browsing a Simple Web Page Java EE Web Applications Web Application Structure • A Simple Servlet Servlets and Dynamic Content What are Servlets? How a Servlet Runs Advantages of Servlets Packages and Classes Creating a Servlet - The Simplest Way A Simple HTTP Servlet Declaring and Mapping Servlets • HTML Forms and HTTP Review HTML Forms A Simple Search Form in HTML A Simple Form in the Browser HTTP Request and Response Details GET and POST Methods Request Parameters • How Servlets Work Servlet Interface and Servlet Lifecycle Servlet Lifecycle - Initialization Servlet Lifecycle - The service() Method Important Types for Servlets Class Diagram for Servlet Types Class GenericServlet Requests and Responses Important ServletRequest/Response Methods Getting Data / Sending Responses Getting Data and Sending Response HTTP Servlets Class Diagram for HTTP Servlet Types Class HttpServlet HttpServletResponse More About web.xml Web.xmlElements Look at the JavaDoc • Working with HttpServletResponse HTTP Responses - Status and Errors HttpServletResponse Status/Error Methods HTTP Response Headers Setting Response Headers MIME Types Specifying a MIME Type • Initialization Initialization Overview The ServletConfig Interface The ServletContext Interface Declaring and Mapping Servlets Servlet Init Parameters Retrieving Initialization Parameters Web App Init Parameters A Problem with SearchServlet Null and Empty String Parameters • Error Handling Specifying Error Pages Error Page Configuration Error Handling • JavaServer Pages (JSP) Shortcomings of Servlets What is a JSP? A Very Simple JSP - simple.jsp The Resulting Browser Output JSPs Look Like HTML JSP Expressions Comments JSPs are Really Servlets Lifecycle of a JSP The Generated Servlet Generated Code Fragment for simple.jsp • Model View Controller (MVC) Architecture Servlet and JSP architecture Model 1 Architecture Model View Controller (MVC) • Servlets as the Controller JSP as the View JavaBeans as the Glue and the Model Servlets as Controllers RequestDispatcher Servlets as Controller Forwarding to a Resource Including Output of Another Resource RequestDispatcher Paths • Data Sharing Among Servlets and JSPs Object Buckets or Scopes Using the Scopes JSPs and JavaBeans Putting Data on a Scope Careful - Servlets are Multi-Threaded Predefined JSP Variables - Implicit Objects jsp;useBean jsp:useBean Details The Other Scopes JavaBean Properties jsp:getProperty Jsp:useBean Creates Page Scope References JSP Mixes Dynamic and Template Data JSP Directives The include Directive jsp:include Action • Custom Tag Libraries Overview Issues with Vanilla JSP Sun’s Solution - Custom Tags Custom Tags Custom Tag Overview Tag Libraries Using a Tag Library in a Web Application Taglib Definition - How it Works More About URIs and Prefixes • JSP Standard Tag Library (JSTL) The JSTL A Brief Word about JSTL & Jakarta Taglibs Introduction to Using JSTL Tags Using the c:out Tag to Output Data JSTL Expression Language Data Objects and the JSTL EL Request Parameters and JSTL Using the c:out Tag and Bean Properties Iterating Over a Collection Using the c:forEach Tag for Iteration Using the c:url Tag for URLs Using the c:param Tag for URL Parameters • HTTP Session Overview HTTP is a Stateless Protocol Online Shopping with a Stateless Protocol Storing Contextual Information Hidden Form Fields • Cookies Cookie Details Accessing Cookies with the Servlet API Persistent Cookies and Session Cookies Cookie Usability Issues • Sessions Servlet/JSP Sessions Using Sessions How Session Tracking Works Sessions and Cookies - How They Work • Error Pages Servlet Exceptions and Error Pages The Implicit exception Object Exception Handling in a JSP web.xml - Declarative Exception Handling Server Logging • Java Scriptlets Scriptlets Scriptlet Syntax How do Scriptlets Work? Generated Code Fragment for simple.jsp When to Use Scriptlets Declarations • JSTL Actions JSTL Overview JSTL Tag Libraries at a Glance • JSTL Expression Language (EL) JSP Expressions vs. JSTL EL The State of JSTL Custom Tag (Including JSTL) Architecture More About JSTL URIs JSTL Prefixes Core Actions Formatting Actions SQL Actions XML Actions JSTL Expression Language (EL) JSTL Expression Language (EL) EL and JSTL Action, Made for Each Other EL Syntax EL Identifiers EL Operators . and [] Operator Usage JSTL-EL Implicit Objects Implicit Object: pageContext JSTL-EL Literal Values • Putting JSTL and EL in JSP Putting JSTL and EL in JSP Using <c:if> <c:if> Test Expressions <c:choose> More on <c:forEach> <c:set> <c:url> <fmt:formatDate> <fmt:formatNumber> JSTL-EL Resources • JSP 2.0 Expression Language (EL) Functions and the JSTL Function Library JSTL 1.1 Functions Library JSTL Function Library New EL Operator JSP Pages as XML Documents Improved Error Handling in JSP Pages Using ErrorData Creating Custom Tags |
• Java EE Security Overview Security Requirements Java EE Security Web Tier Security in Java EE Transport Level Security with HTTPSSSL • Declarative Security Declarative Security Roles Specifying Security Constraints Security Constraints - Deployment Descriptor Mapping Users to Roles Security - The Big Picture • Web Authentication Authentication HTTP Basic Authentication HTTP Basic Authentication on the Browser Configuring Basic Authentication Basic Authentication Pros and Cons Form Based Authentication Using Form Based Authentication Form Based Authentication Pros and Cons Digest Authentication Digest Authentication Pros and Cons HTTPS Client Authentication • Programmatic Security Programmatic Security Programmatic Security - HttpServletRequest • Design Issues Design Issues Divide and Conquer Minimize Network Overhead Scalability - Clustering Sessions and Clustering Scalability - Separating Static Content Scalability - Java Virtual Machine Scalability - CPUs and 64 Bit Machines Maintainability - Write Your JSPs Well Use the Technology Wisely Use a Framework • JavaServer Faces (JSF) Overview JavaServer Faces JSF Architecture JSF Capabilities JSF Componenets The UI Runs on the Server Event Handling Process Flow JSF Advantages JSF Disadvantages • Servlet Filters Servlet Filter Overview What Can Filters Do Filter API Using Filters Filter Processing Filter Chain A Simple Filter Filter is Mapped in the web.xml File How A Filter can Modify a Request or Response The Way a Response Normally Works Manipulating the Response Wrapping the Response • Relational Database and JDBC Overview The Power of Information Relational Database overview Relational Database Description Database Table Relationships Web-Based Architecture Database Access Wish List JDBC Overview JDBC Characteristics JDBC Specification and Packages • JDBC Architecture and API JDBC Architecture The Fundamental JDBC API The DriverManager Class What is a JDBC Driver? Drivers Must be Loaded Naming Databases with URLs • Database Connections Database Connections, Connection Interface Establishing a Database Connection The DatabaseMetaData Interface Database Exceptions - SQLExceptin Wrapped Database Exceptions - Illustrated Database Exceptions - SQLWarning Closing JDBC Objects try-catch May Not be Good Enough Using finally to Close JDBC Objects • Data Access Objects and O-R Mappings Data Access Objects - Rationale Value Objects - Rationale Object-Relational (O-R) Mappings JavaTunes O-R Mapping Value Objects and JavaBeans Data Access Object – Illustrated • Processing Database Data Creating Statements The Statement Interface The ResultSet Interface Extracting Data from a ResultSet SQL-Java Type Mappings Dealing with Result Set NULL Values Closing JDBC Objects – Revisited Using finally to Close JDBC Objects Prepared Statements Benefits of Prepared Statements Calling Database Stored Procedures The CallableStatement Interface Update Statements Transaction - Overview Controlling Transactions in JDBC Storing Dates • JDBC Driver Types JDBC Driver Types Type 1 - JDBC-ODBC Bridge Type 2 - Native API, Part Java Type 4 - Native Protocol, Pure Java Type 3 - JDBC-Net, Pure Java • Java Persistence API - Overview Other Database Access Technologies O-R Mapping Tools Java Persistence API Overview Entity Classes • Advanced JDBC Features - Overview Advanced JDBC Features Batch Updates Methods for Performing Batch Updates Scrollable, Updatable Result Sets Result Set Scrollability Types Result Set Concurrency Types Getting Advanced Result Set Functionality Rowset Overview The RowSet Interface Rowset Implementation SQL3 User-Defined types (UDTs) Mapping a UDT to a Java Type BLOBs and CLOBs What is a Blob Object Getting the Actual BLOB Data • System Design Choices User Action - JavaTunes and Catalog Search The Roles of "Client" and "Server" The Simple Approach - Illustrated The Simple Approach - Analysis Using a JSP for the View - Illustrated Using a Data Access Object - Illustrated A More Modular Approach - Analysis Using EJB - Illustrated Using EJB - Analysis Using Web Services - Illustrated Using Web Services - Analysis • Database Access Java EE and JDBC Why DataSource? How do Clients get Access to a DataSource? JNDI - Java Naming and Directory Interface EJB Container Binds a Reference into JNDI Client Looks up Reference in JNDI JNDI Overview JNDI Name Tree JNDI Tree Structure JNDI in the Java EE Platform Defining a Resource Reference in web.xml The Context Interface Obtaining a DataSource by Lookup Mapping the ENC Name to the JNDI Name ENC and JNDI - Putting it all Together Connection Pooling Pooled Connections - Illustrated Getting a Pooled Connection - Illustrated Closing a Pooled Connection - Illustrated Connection Pooling Implementations Statement Pooling Statement Pooling - Illustrated Getting a Pooled Statement - Illustrated Closing a Pooled Statement - Illustrated Be Neat • EJB Overview What is EJB EJB Goals Types of Enterprise JavaBeans Java Persistence API JPA Goals EJB and Java EE ENB in Java EE Architecture EJB Transaction Support EJB 3.0 Overview EJB 3.0 Goals Session Bean Usage Persistent Entity Usage MDB Usage Benefits of Using EJB Issues with EJB • Web Services Overview Service Oriented Architecture )SOA) The Evolution of Computing SOA Concepts Some Advantages of SOA Some Issues with SOA Web Services Defined Value Proposition Web Services Defined TW-* Web Services Specifications The Web Services Stack Web Services Tacks Architectural Details SOAP Concepts WSDL Concepts Java Web Services (JWS) Standards Defining a Web Service Writing a JAX-WS Client • JMS Overview What is Messaging? Loose Coupling When is Messaging Used? Two Messaging Models Publish/Subscribe - Illustrated More on Publish/Subscribe Point-to-Point - Illustrated More on Point-to-Point (P2P) Overview of JMS API What is Java Message Service? API Structure JMS Interfaces Administered Objects Administered Objects and JNDI - Illustrated Client Workflow Synchronous Queue Consumer Client Asynchronous Queue Consumer Client JMS Message Types Contact us for course schedules or more information. |


