Fast Track to Jakarta EE (JEE) Web Development With Servlets/JSPs, JNDI, EL, JPA, WebSockets, Security & More (TT5100)

Learn Core Jakarta EE Skills Required to Build Production-Level, Robust, Scalable and Dynamic Web Applications

TT5100

Introductory

5 Days

Course Overview

Unlock the power of dynamic web development with our five-day, hands-on Mastering Jakarta EE Web Application Development course. Perfect for experienced Java developers new to JEE, this course will take you on a journey of discovery as you learn the essential skills and best practices needed to build robust and scalable web applications. This comprehensive course is packed with engaging concepts, practical lab exercises, and real-world examples that will have you creating your own server-side applications in no time.

Jakarta EE is a Java-based platform for enterprise web development, which includes a set of specifications and technologies for building and deploying web applications. It provides a standard set of APIs and tools for developing server-side components such as servlets, JavaServer Faces (JSF), Enterprise JavaBeans (EJB), and Java Persistence API (JPA). Jakarta EE can be used in full stack web development to build the back-end or server-side of a web application, which can then be integrated with front-end technologies such as HTML, CSS, and JavaScript to create a complete web application. Some of the key benefits of using Jakarta EE for full stack web development include its scalability, robustness, and support for different deployment environments.

Why is JEE / Java EE now called Jakarta EE?  In 2017 Oracle gave the open source edition of the Java Enterprise edition to the Eclipse Foundation. Since the names 'Java' and 'javax' are still owned by Oracle, the open source version of Java Enterprise Edition (Java EE) has been renamed Jakarta EE. In addition, individual specifications were also renamed. JavaServer Faces (JSF) was renamed to Jakarta Faces (or simple 'Faces'), Java Enterprise Beans was renamed to Jakarta Enterprise Beans and so on.

Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn to:

  • Design and build web applications from both business and technical requirements
  • Build web interfaces with Jakarta Faces, JSPs and Servlets, using the latest technologies in JEE.
  • Write maintainable web applications that separate HTML and Java
  • Understand the design and development of web applications using Servlets, JSPs, web fragments, and JSF
  • Use dependency injection (CDI) within their application
  • Make Servlets cooperate and share data
  • Store and process session information
  • Deal with concurrency issues
  • Access databases using an Object to Relational (ORM) framework
  • Work with annotations included in Jakarta EE
  • Work with WebSockets as well as asynchronous servlets
  • Use Jakarta Bean validation in a web application
  • Properly handle various types of exceptions

Course Objectives

You’ll will leave this course armed with the required skills to design and build scalable, secure, maintainable web applications - leveraging our extensive experience in the delivery of scalable enterprise applications with complex web interfaces based on modern Java EE technologies.

Throughout the course, you’ll gain the skills required to design and build scalable, secure, and maintainable web applications. You’ll learn how to solve common web design problems, use JEE design patterns, and work with a variety of JEE and web technologies such as Servlets, JSPs, JSF, JNDI, and CDI.  You’ll also explore servlet capabilities, advantages, architecture, and session management, as well as how to manage resources, deploy, and build robust web applications using servlets and other components. The course starts with web application architecture and covers various web components used to create dynamic applications. Learn not just specific topics and APIs, but also how to integrate them into a complete application.

Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn to:

  • Design and build web applications from both business and technical requirements
  • Build web interfaces with Jakarta Faces, JSPs and Servlets, using the latest technologies in JEE.
  • Write maintainable web applications that separate HTML and Java
  • Understand the design and development of web applications using Servlets, JSPs, web fragments, and JSF
  • Use dependency injection (CDI) within their application
  • Make Servlets cooperate and share data
  • Store and process session information
  • Deal with concurrency issues
  • Access databases using an Object to Relational (ORM) framework
  • Work with annotations included in Jakarta EE
  • Work with WebSockets as well as asynchronous servlets
  • Use Jakarta Bean validation in a web application
  • Properly handle various types of exceptions

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  See our Java Full Stack Developer Journey courses for additional topics and skills. Our team will collaborate with you to adjust the content to focus on your specific learning objectives and goals.

Course Prerequisites

This is an introductory- level Java programming course, designed for experienced developers who wish to get up and running with Java EE / JEE, or who need to reinforce sound Java for Web coding practices.   Attendees should have a working knowledge of developing basic Java software applications.

Take Before: Students should have practical skills equivalent to or should have attended the following course(s) as a pre-requisite:

  • TT2104: Fast Track to Core Java Programming for OO Developers (C+, C#, etc.)

Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses that offer similar skills or topics, and next-step Learning Path recommendations.

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most.

Session: Developing Enterprise Applications

Lesson: Enterprise Development

  • Enterprise Application Software
  • Requirements of Enterprise applications
  • Scalability, Load Balancing, Fail Over
  • Resource pooling

Lesson: Jakarta EE Core Components

  • Overview of Jakarta EE Core Components
  • Web Tier Components
  • Application Tier
  • Deployable Units
  • Deployment Descriptors
  • The Java Naming and Directory Interface (JNDI)
  • Tutorial: Building web Applications in Eclipse

Session: JEE Dynamic Web Applications

Lesson: Introduction to Servlets

  • The Servlet Interface
  • The Web Container
  • Creating HTML Output Using Servlets
  • The @Webservlet Annotation
  • Interaction Between web.xml and Annotations
  • The @Webinitparam Annotation
  • Lab: A First Servlet

Lesson: Form processing using Servlets

  • Using HTML5 Forms with Servlets
  • Processing Request Parameters
  • HttpServletRequest Methods
  • HttpServletResponse Methods
  • Lab: Form Processing

Lesson: Jakarta Server Pages

  • Jakarta Server Pages ( JSPs)
  • The Relationship Between JSPs and Servlets
  • The JSP lifecycle
  • Lab: A First JSP

Lesson: Implementing MVC in JEE

  • Model View Control
  • Using the RequestDispatcher
  • Handling Requests
  • The Request Scope
  • Handling Request Attributes
  • The Expression Language (JSR 341)
  • EL in Template text
  • Lab: Implementing MVC

Lesson: Session Management

  • Sessions in Web Applications
  • The HttpSession object
  • Session Management in JEE
  • Handling Cookies
  • URL-Rewriting
  • Lab: Managing Sessions

Session: JEE Servlet Filters and Listeners

Lesson: Servlet Filters

  • Introduce Servlet Filters
  • Modify the request data
  • Modify the response data
  • The @WebFilter annotation
  • Define Filter Mappings
  • Move functionality out into a decorator pattern
  • Lab: Adding Filters

Lesson: Events, Listeners and Initializers

  • Introduce Web Listeners
  • Listen for context events
  • Respond to Session modifications
  • Session aware objects
  • ServletContextInitialzer and the Service Provider interface
  • The HandlesTypes annotation
  • Lab: Listeners

Session: Jakarta Expression Language (EL)

Lesson: Overview of EL

  • The Expression Language (JSR 341)
  • Value and Method Expressions
  • Immediate and Deferred Evaluation Syntax
  • Read and Read/Write expressions

Lesson: The EL language

  • Apply EL operators
  • Use the EL implicit objects
  • Explain the steps involved in creating EL functions
  • Create a function implementation
  • Define the function in the tag-library
  • Use a function within a JSP page
  • Lab: Using EL Expressions

Session: Custom Tags

Lesson: Introduction to Custom Tags

  • Custom tags
  • Using the taglib Page Directive
  • The TLD File
  • The Tag Implementation Class

Lesson: Jakarta Standard Tag Library

  • Use the JSTL core and formatting libraries
  • The core functionality of the library
  • JSTL functions
  • Lab: Using JSTL

Session: Contexts and Dependency Injection (CDI)

Lesson: Introduction to CDI

  • Understand the value of CDI
  • Explore dependency injection (DI)
  • Understand alternatives
  • Understand annotation processing
  • Use and configure CDI
  • Lab: Using CDI

Lesson: Using CDI

  • Use qualifiers to discriminate which object gets injected
  • Understand when a bean is assignable to a given injection point
  • Define you own Qualifier annotation
  • Understand post construction annotations and pre destruction annotations
  • Create factory methods with @Produces
  • Lab: Using Qualifiers

Lesson: CDI and Jakarta EE

  • CDI's Relationship to Jakarta EE
  • The @Model annotation
  • Built-in CDI scopes
  • Lab: Using CDI and Servlets

Lesson: Interceptors and Decorators

  • Introducing CDI Interceptors
  • Implementing Interceptors
  • Adding (Multiple) Decorators
  • CDI Events
  • Lab: Using Interceptors and Decorators

Session: Using Resources

Lesson: JEE DataSources

  • DataSources in JEE
  • Setup a DataSource
  • Using CDI to inject a DataSource
  • Lab: Using DataSources

Lesson: Overview of JPA

  • Object to Relational (O/R) Mapping (ORM)
  • The Jakarta Persistence Architecture
  • The ORM framework configuration
  • Map a ‘simple’ entity to a database table
  • Read, write and search for entities
  • Lab: Using JPA

Session: Java API for WebSocket

Lesson: Introduction to WebSocket

  • Java API for WebSocket Overview
  • Using WebSockets in JEE
  • Endpoint Instances

Lesson: Implementing WebSocket Endpoint

  • Annotated Endpoints
  • Receiving messages
  • Send Response to Client(s)
  • JavaScript to Setup a WebSocket Connection
  • Lab: Implementing a WebSocket

Lesson: Extending WebSockets

  • Understand the use of configurators
  • Share user data between multiple requests
  • Use JSON message objects for communication
  • Write message encoders and decoders
  • Handle exceptions in endpoints
  • Lab: Encoding and Decoding Messages

Session: Jakarta Bean Validation

Lesson: Introduction to Bean Validation

  • Bean Validation
  • Define Constraints on Object Models
  • Core Validation Annotations
  • Validate Objects and Object Graphs
  • Internationalized error messages
  • Lab: Bean Validation

Lesson: Bean Validation

  • Define custom validation constraints
  • Implement constraint validators
  • Use validation groups
  • Use bean validation on methods and constructors
  • Lab: Creating Constraints

Session: Managing Web Applications

Lesson: Web Fragments

  • Need for Web Fragments
  • The web-fragment Element
  • Fragment Ordering
  • Lab: Fragments

Lesson: Error Handling

  • Handle exceptions in web applications
  • Declaring error pages

Lesson: Asynchronous Servlets

  • Invoking a ‘Long Running’ Process
  • The asyncSupported Attribute
  • Using the AsyncContext Class
  • Handling AsyncEvent Objects
  • Nonblocking I/O in Servlets
  • Lab: ASync Servlets

Lesson: Web Security

  • Specify the Servlet Security Model
  • Roles in the Web Application
  • Access Control and Authentication Requirements
  • Security-Related Annotations
  • Lab: Web Security

Session: Introduction to Jakarta Faces

Lesson: Introduction to Faces

  • Faces Overview
  • The Faces ‘Components’
  • Configuring a Faces Application
  • MVC using Jakarta Faces
  • Lab: First JSF

Lesson: JSF Components

  • Understand the component architecture of JSF
  • Explain the use of the RenderKit
  • User Interface Component Model
  • Introduce the JSF Custom Tags
  • Explain the functionality of the various input tags
  • Panels and tables in JSF
  • Lab: JSF HTML Tags

Session: Facelets

Lesson: Facelets

  • Introduce Facelets
  • Use Facelets to create the view of the JSF application
  • Access properties of a Managed Bean using EL
  • Lab: Working with Facelets

Lesson: Facelets Templating and Resources

  • Creating a Consistent Look and Feel
  • Templating and Placeholders
  • JSF resource management
  • Lab: Facelets Templating

Course Materials

Student Materials: Each participant will receive a Student Guide with course notes, code samples, software tutorials, step-by-step written lab instructions, diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Hands-On Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based or local installation course environment is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. Please inquire for details and options.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More