Java Web Development Course

Course Code: IN 136
Course Abstract:

This course covers all the skills necessary for effective Java web application development. It emphasizes portable code practices following Java EE standards, which will function correctly on any standards-compliant Java web application server. During the course, participants will develop a complete web application, including client-side form validation with JavaScript, form processing with servlets and JSP and database integration with JDBC.

Audience:

This course is designed for programmers who want to develop web applications with servlets, JSP, JavaScript and JDBC. Prior experience with the core features of the Java language is required.

Duration: 5 days
Learning Outcomes:

Upon completion of this course, the participant will be able to:
> Perform HTML form processing with Java servlets
> Create dynamic page content with Java Server Pages
> Define custom JSP tags for rapid web development
> Create and integrate JDBC-enabled business objects
> Perform client-side form validation with JavaScript (extended-day version)

Course Topics:

Web Architecture
Client/Server Architecture
Client/Server on the Web
Networking and TCP/IP
Network Protocol Stacks
The TCP/IP Network Stack
TCP/IP Addresses and DNS
Domain Names
Application Protocols
TCP/IP Ports
The Web Server
Uniform Resource Locators
Virtual Directory Structure
URL Mapping and Relative URLs
The HTTP Protocol
HTTP Messages
HTTP Message Parts
HTTP Requests and Responses
HTTP Is a Stateless Protocol
HTML
HTML Standards
HTML Tag Basics
HTML Hyperlinks
HTML Tables and Page Formatting
The Application Server
Dynamic Page Generation
CGI and SAPI
Servlets and Server-side Scripting
Java Web Architecture
Review: Web Architecture
Lab: Web Architecture

Our Application Server
Major Servlet Engines 
Apache Tomcat
Installing the Server
Directory Structure
Server Configuration
Compilation Batch File
Abbreviated API Documentation
Classes in the Abbreviated API
Differences from the Normal API
Catalog Business Objects
Item Objects
Order Objects
Line Item Objects
General Methods
Loading and Saving Objects
Lab: Our Application Server

Servlet Fundamentals
Servlets in the JAVA EE Framework
The Servlet Engine
Advantages of Servlets
How Servlets Work
A Simple Servlet
Generic and HTTP Servlets
Servlet Class Hierarchy
The HttpServlet Class
Life-cycle Methods
HttpServlet Life-cycle
Servlets and Threads
doGet() and doPost() Parameters
doGet() and doPost() Exceptions
Utility Methods
What to (Not) Put in Servlets
The Servlet Development Process
1. Writing Servlets
2. Compiling Servlets
3. Deploying Servlets
4. Configuring Servlets
5. Invoking Servlets
Review: Servlet Fundamentals
Lab: Servlet Fundamentals

Servlet Requests
HttpServletRequest Methods
Data Transmission on the Web
HTML Forms
Form Elements
Special Form Elements
URL Encoding
Form Action and Methods
HTTP Messages Sent
Retrieving Parameters in Servlets
Processing Form Data
Multiple Values With Same Name
Looping Through All Parameters
Form & Parameter Names Matches
Information about Client & Server
Getting HTTP Request Headers
Headers and Browser Detection
Review: Servlet Requests
Lab: Servlet Requests
Site: Servlet Requests

Servlet Responses
HttpServletResponse Methods
Response Output Streams
Responding With Text Data
Responding With Binary Data
Pre-populating Form Data
Setting HTTP Response Headers
Preventing Caching With Headers
Flush Output, "Better" Performance
Servlet Redirection
Client-side Redirection
Self Redirection
Server-side Redirection (Dispatch)
Forwarding Data in the Requests
Client vs. Server-side Redirects
Client & Server Redirects Together
Review: Servlet Responses
Lab: Servlet Responses
Site: Servlet Responses

Servlet Sessions
HTTP Is a Stateless Protocol
Basic Data Passing Techniques
Example: Lists of Accounts
Cookies
How Cookies are Stored
Setting Cookies in Servlets
Reading Cookies in Other Servlets
Cookie Characteristics
The Session Object
Objects (Attributes) in Sessions
Issues with Using Sessions
Session Use Examples
Example 1: Session Based Security
Example 2: Object Caching
URL Rewriting
Contrasting Data Techniques
Review: Servlet Sessions
Lab: Servlet Sessions
Site: Servlet Sessions

Java Web Applications
Web Application Structure
Context Path
Non-Java Files in Web Apps
Servlet Contexts
Servlet Context and its Attributes
web.xml Structure
General Application Information
Servlet Tags
Servlet-Mapping
Session Config and Taglib
Servlet Engine Configuration
Security Constraints
Login and Security Roles
External Resource Mappings
Lookup for JNDI Resources
Lookup For Init Parameters
Deploying Web Applications
Review: Web Applications
Lab: Web Applications

JSP Fundamentals
Server-Side Scripting
Java Server Pages
JSP Deployment
JSP Life-cycle
The Role of JSPs
JSP Class Hierarchy
JSP Scripting Elements
Implicit Objects
Text
Scriplets and Expressions
Combining Scripting Elements
Declarations
Comments
Directives
Page Directives
Include Directives
Review: JSP Fundamentals
Lab: JSP Fundamentals
Site: JSP Fundamentals

JSP Action Tags and Beans
Action Tags
The Plug-In Action Tag
Include and Forward Action Tags
Forwarding From Servlet to JSP
Forwarding Data to JSPs
Servlet for Process, JSP for Display
JavaBean Components
An Example JavaBean
Use-Bean Action Tag
Bean Scopes
Translation of the Use-Bean Tag
SetProperty and GetProperty Tags
SetProperty Type Conversions
Sets Using Request or Expressions
JSPs without Java
Review: JSP Action Tags
Lab: JSP Action Tags
Site: JSP Action Tags

JSP Standard Tag Library (JSTL)
Scripting vs. Tags in JSP
Custom Tag Libraries
Origins of JSTL
Status of JSTL
Structure of JSTL
JSTL Expression Language
Expression Language in Tags
Core JSTL Tags
General Purpose Tags
Conditional Logic
Iteration Logic
Exception Handling
Urls, Imports and Redirects
EL Variables and Scopes
EL Implicit Objects
Using Implicit Objects
EL Object Navigation
EL Operators
Using the JSTL Core Tags
Review: JSTL
Lab: JSTL
Site: JSTL

JDBC Fundamentals
Relational Databases
Database and Client/Server
Tables
Foreign Key Relationships
Structured Query Language
SQL for Table Creation
Database Access for Applications
JDBC Architecture
Driver Types
JDBC Class Hierarchy
A Simple JDBC Example
Loading Drivers
Connections to the Database
Utility Class: Connection Factory
connect() and close()
Executing SQL Commands
Processing ResultSets
Importance of Try/Catch/Finally
Review: JDBC Fundamentals
Lab: JDBC Fundamentals

JDBC Advanced Features
Statement Types
Prepared Statements
Setting Statement Parameters
Advantages of Prepared Statements
Callable Statements
Java Types and Database Types
Java and SQL Dates
Working with SQL NULL
Setting Parameters to SQL NULL
JDBC-Based Business Objects
Business Object Properties
Item's load() Method
Item's listAll() Method
Item's remove() Method
Item's store() Method
Item's create() Method
Item's save() Method
Using Business Objects
Review: Advanced JDBC
Lab: Advanced JDBC

Enterprise JDBC
Connection Pooling
Retrieving Pooled Connections
DataSources
Using DataSources
Closing Pooled Connections
Transactions
JDBC Transactions
Transaction Example
Transactions and Concurrency
Transaction Isolation
Primary Key Generation
IdMaker
IdMaker Class Outline
loadIdFromDB() Outline
A Table-Specific IdMaker
Object to Relational Mapping
Review: Enterprise JDBC
Lab: Enterprise JDBC

Web Application Security
Security Issues
Firewalls
Firewall Placement
Effect of Firewalls on Applications
Encryption for Message Protection
Encryption and the Network Stack
IPsec and Virtual Private Networks
SSL/TLS
How SSL Works
Activating SSL on the Server
Using SSL in Web Applications
Security Constraints on Access
Authentication on the Web
Configuring Web Authentication
Java Form-Based Authentication
User Roles for Resource Access
User Information Storage
Security Information in Serlvets
Roll-Your-Own Security
Review: Application Security
Lab: Web Application Security

Holistic Web Design
Model-View-Controller (MVC)
MVC for Java GUIs
MVC Applied to the Web
Servlets as Event Handlers
Servlets as Remote Procedure Calls
Linking Components Together
Proper Uses of Redirection
Templates for Components
Servlet Templates: Inheritance
Example Servlet Template
Refresh Tag in Chained JSP
User Data and loadBean Tag
Servlet Template in Action
JSP Templates: Includes
Complex Layouts with Includes
Business Object Templates
Universal Setting in Templates
Number of Servlets and JSPs
Concurrent Development
Frameworks and Libraries
Review: Holistic Web Design

Appendix 1: JavaScript for Java Programmers
Client-Side Scripting
Characteristics of JavaScript
JavaScript Versions
Embedding JavaScript in HTML
JavaScript Code Structure
JavaScript Variables and Scope
JavaScript Types
Type Conversion
Operators and Control Structures
JavaScript Arrays
JavaScript Functions
Return Values and Function Calls
JavaScript Objects
Methods and "this" Keyword
Object Constructors
Strings and Dates
Debugging Javascript
Example Script
Review: JavaScript Syntax
Lab: JavaScript Fundamentals

Appendix 2: JavaScript in the Browser
Browser Object Hierarchy
Window Object
Location, History and Navigator
Document Object
Targeting Page Elements
Links, Images, Applets
Form Objects 
Form Input Elements
Text Elements
Checkbox and Radio
Select Lists
Getting the Selected Value
Event-Driven JavaScript
Browser Objects Event Handlers
Form Event Handlers
Field Validation
Form Validation
Review: JavaScript in the Browser
Lab: JavaScript in the Browser

Appendix 3:JavaScript Form Validation
Role of HTML Form Validation
Issues with JavaScript Validation
FormValidation.js Library
Using the Form Validation Library
Common Validations
Validation Properties
Field Data Types
Predefined Data Types
Formatting and Parsing Methods
The formData Object
Object Wrapper for Form Data
Custom Validations
Assigning Custom Validations
Form-Level compute Methods
Additional Library Features
Review: Form Validation
Lab: Javascript form Validation

Prerequisites:

Java Programming experience is required.

Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning