- Design and build robust and maintainable web  applications
- Create dynamic HTML content with Servlets and  Java ServerPages, using the JSP Standard Tag Library (JSTL)
- Make Servlets and JSP work together cleanly
- Use JSTL and other Custom Tag Libraries to  separate Java and HTML code
- Access databases with JDBC
- Use Enterprise JavaBeans effectively from  Servlets and JSP
- See the full descriptions for detailed content 
Hands-On
50% hands-on, 50% lecture 
Supported Platforms
Eclipse/Tomcat, GlassFish, JBoss AS, IBM Rational Application Developer (RAD) / Websphere AS, Weblogic AS
Java Training   Course Duration
5 Days
Java Training   Course outline
     Session 1: Java EE Introduction
      
        - Java EE Overview
- Java EE Technologies
- Java EE Architecture
- MVC
Servlets and JSP with JSP Standard Tag Library  (JSTL)
    Session 2: Web Application Basics
      
        - How the Web works, Thin Clients,  TCP/IP 
- HTTP overview, Brief HTML review
- Overview of J2EE
- Web  Applications - Structure and Contents
- Servlet Basics and Capabilities
- Basics of Writing a Servlet
- Labs: 
          
            - Setup development environment and server; Create a simple web application
- Create a Simple Servlet
 
Session 3: Servlet API
      
        - HTML Forms Review 
- HTTP Review: Request-response, headers, GET, POST 
- Overview: How Servlets Work
          
            - Servlet Lifecycle: init(), service(), destroy()
- API: Servlet, ServletConfig, ServletRequest, ServletResponse, GenericServlet, 
- Requests and Responses - Using ServletRequest and ServletResponse
- HTTP Servlets: HttpServlet, HttpServletRequest, HttpServletResponse
- Accessing Parameters
- More About web.xml
 
- Labs: 
          
            - Using Client Input, Retrieving parameters
 
Session 4: Additional Servlet  Capabilities
      
        - Working with HttpServletResponse
          
            - Status/Errors
- Response Headers
- MIME Types
 
- Initialization
          
            - Overview
- Using ServletConfig and ServletContext
- Init Parameters - Servlet and Web App
 
- Error Handling: Error Pages and Their Configuration
- Labs: 
          
            - Using Model Classes, Generating Simple Output
 
Session 5: JavaServer Pages
      
        - Basics and Overview
          
            - JSP architecture
- JSP tags and JSP expressions 
- Fixed Template Data
- Lifecycle of a JSP
 
- Model View Controller  (MVC)
          
            - Overvie
- Java EE Model 2 Architecture : Servlet Controllers, JSP Views, JavaBeans Glue
 
- Servlets as Controllers
          
            - Using RequestDispatcher
- Forwarding and Including
 
- Data Sharing in a Web App
            - Object scopes or "buckets"
- Using JavaBeans to Hold Data
- Using the Scope Objects - get/set/remove Attributes
- Request, application, session and page scope
- JSP Expression Language (EL) and Data Access
          
            - JSP EL Overview
- JavaBeans and the EL
- Predefined JSP EL implicit objects (pageContext, param, header, scope objects)
- <jsp:useBean>, <jsp:getProperty>,  <jsp:setProperty>
 
- jsp:include, jsp:forward, the page Directive
- Labs: 
          
            - Create a Simple JSP Page
- Put Data on a Scope and Forward to a JSP
- Use the JSP Expression Language
 
Session 6: Using Custom Tags
      
        - Custom tags overview
- Reducing JSP complexity
- Tag Libraries
          
            - Overview and TLD (Tag Library Descriptor)
- taglib Directive - Using a Tag Library
 
- JSTL
          
              - Overview
- c:out, c:forEach
- c:url, c:param
          
 
- Labs: 
            
              - Use c:forEach for Iteration
- Working with Links and c:url
 
Session 7: HTTP Session Tracking
      
        - HTTP Session Overview
          
            - HTTP as a stateless  protocol
- Hidden form fields
 
- Cookies
          
            - Overview and Servlet API
- Using Cookies, Persistent and Session Cookies 
- Issues
 
- Sessions
          
              - Servlet/JSP Session Support, HttpSession
- Using Sessions - Putting Data in, Retrieving Data From
- How Sessions Work
 
- Labs: 
            
              - Storing and Using Session Data
 
Session 8: More JSP Capabilities
      
        - Error Pages
          
            - Error Pages and Exception Handling
- The implicit exception Object
- JSP 2.0+ Error Handling and errorData Object
- Directives (page, include, others)
 
- JSPs as XML Documents
- Scriptlets - Overview and Usage
- Labs: 
          
            - Using Error Pages
- {optional} Using Scriptlets
 
Session 9: More JSTL and EL
      
        - More About the JSTL
          
            - Core, Formatting, SQL, XML, Functions Libraries
- Custom Tag Architecture and Tag Library Structure
- c:if, c:choose, c:import
- Formatting: formatNumber, formatDate, Resource Bundles
- Using Common Tags
- XML Action Example
 
- More About the JSP EL
          
            - Syntax, Identifiers, Literals, Operators
- Implicit Objects
- The pageContext in Detail
- Type Coercion
- String concatenation
 
- Using Common Tags
          
            - c:if, c:choose
- c:set
- fmt:formatDate, fmt:formatNumber
 
- Labs:
          
          
            - Using c:if, c:choose, c:when and c:otherwise to customize output
- [Optional]: Using the Function Library
- JSTL Format Tags
 
Session 10: Security
      
        - J2EE Security Overview
- Role Based Security
- Declarative Security
- Web Authentication - Basic, Form-Based, Digest, HTTPS Client
- Using Basic Authentication
- Using Form-Based Authentication
- Programmatic Security - HttpServletRequest, Retrieving Roles
- Labs:
          
          
            - Securing a Web App, Setting Up and Using a Security Domain
 
Session 11: Additional Topics
      
        - Design Issues
          
            - Dividing Responsibilities Between Servlets/JSP
- Network Overhead
- Scalaibility - Clustering, Serving Static Content
- Other Guidelines - Using the Technology Well
 
- Custom Tags Using Tag Files
          
            - Overview and Writing Tag Files
- Tag Attributes
- The tag Directive
 
- Servlet Filter overview
          
            - Filtering examples, lifecycle, & filter  chains
- Filter API, Modifying a request, Modifying a  response
 
- Java ServerFaces (JSF) Overview
          
            - Advanced MVC – JSF overview
- JSF Components
- Process Flow
- Advantages and Disadvantages
 
JDBC
           Session 12: JDBC Introduction
           
             - Relational Database and JDBC Overview
               
                 - Overview, Table Relationships, Web Based Data  Access, JDBC Characteristics
 
- JDBC Architecture, JDBC API Overview
               
                 - DriverManager, JDBC Drivers
- Naming databases with JDBC URLs
 
- Connecting to a database
               
                 - Connection interface, Establishing a connection
 
- DataBaseMetaData
- Handling Database Exceptions
Session 13: Data Access with JDBC
          
            - DAO – Data Access Objects, O-R Mapping, Value  Objects
- Processing Database Data
              
                  - Executing statements, precompiled statements and  stored procedures
- Processing ResultSets, 
- Dealing with Null data
- Updating, inserting, retrieving data
- Controlling Transactions
 
- JDBC Driver Types
- Labs: 
                
                  - Lab series creating DAO using JBDC
 
Session 14: Advanced Topics
          
            - Java Persistence API Overview
- Advanced JDBC Features
              
                  - Batch Updates, Srollable Result Sets, Rowsets,  User Defined Types, BLOBS, CLOBS
 
Database Integration and Additional Technologies
          Session 15: Java EE Database Integration
          
            - Environment Naming Context (ENC) and Resource Injection
- JNDI Overview and the ENC
- Connecting servlets to a database via DataSource
- Connection Pooling 
Session 16: Additional Topics
          
            - EJB
              
                - Overview of EJB
- High-level EJB architecture
- Roles within EJB
- Client view of a session bean
- JNDI (Java Naming and Directory Interface)
- Remote and Home Interfaces
- Writing an EJB client
 
- XML and Web Services Overview
              
                - XML and Web Services
- JAX-WS Web Services Overview
 
- Design Considerations: Web Design, System Architecture, Scalability, Clustering
Labs
          
            - Accessing a database from a servlet
- Other Optional Labs (Depends on Platform Support)