- 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)