This course will get you on your way to building robust web applications leveraging the Java Enterprise platform. In addition to syntax and the “nuts and bolts” of how to build web applications, we present the important concept of the separation of programmatic and declarative development, i.e., use of configuration and context information in lieu of hard-coded values, resource locations and so on to make the web application as portable and easy to administer as possible.
Students should complete an introductory Java class or have at least three months of Java programming experience before taking this course.
• Recognize what technologies are available in JEE
• Demonstrate understanding of web application file and packaging structure
• Understand and appreciate the role of Java Servlets in the overall Java Enterprise Edition architecture
• Use request and response objects provided to a servlet to read parameters and to produce an HTML response
• Develop interactive web applications using HTML forms and servlets
• Manage complex conversations with HTTP clients using session attributes
• Diagram and explain the differences in MVC and MVVM
• Create a RESTful web service in Java using JAX-RS
• Recognize what technologies are available in JEE
• Demonstrate understanding of web application file and packaging structure
• Understand and appreciate the role of Java Servlets in the overall Java Enterprise Edition architecture
• Use request and response objects provided to a servlet to read parameters and to produce an HTML response
• Develop interactive web applications using HTML forms and servlets
• Manage complex conversations with HTTP clients using session attributes
• Diagram and explain the differences in MVC and MVVM
• Create a RESTful web service in Java using JAX-RS
- JEE Overview
- JEE Technologies
- HTTP Overview
- Requests (GET/POST)
- Responses
- URLs
- Resource Mappings
- Request Parameters
- Web Applications
- Structure
- WAR File
- Context Root
- Deployment
- Servlet Basics
- Overview and API
- Static versus Dynamic Content
- Servlets
- Role in a Web App
- Servlet Interface
- GenericServlet Class
- HttpServlet Class
- Mapping a URL to a Servlet Class
- Web Container
- Requests and Responses
- HttpServletRequest
- Reading HTTP Request Headers
- HTML Forms
- Reading HTTP Request Parameters
- HttpServletResponse
- Setting HTTP Response Headers
- Monitoring Requests and Responses
- HttpServletRequest
- Overview and API
- Advanced Servlets
- Servlet Lifecycle
- Overview
- Instantiation
- Initialization
- init(ServletConfig) Method
- init() Method
- Lazy Initialization
- Service
- Service() Method
- Relationship of service() to doGet()/doPost()
- Destruction
- Destroy() <ethod
- Servlet Configuration
- ServletConfig Interface
- Reading Initialization Parameters
- Deployment Descriptors
- Web.xml
- <servlet> Element
- <servlet-mapping> Element
- <welcome-file-list> Element
- Vendor-web.xml
- Web.xml
- Servlet Threading
- Servlets are Singletons
- Servlets are Multithreaded
- Synchronization Techniques
- Servlet Lifecycle
- Session Tracking
- HttpSession
- Need for Sessions
- HttpSession Class
- Accessing the Session
- Session Invalidation
- Session Timeout
- Cookies
- Overview
- Cookie Class
- Cookie Expiration
- Sending Cookies to the Client
- Retrieving Cookies from the Client
- JSESSIONID
- URL Rewriting
- Overview and Need for URL Rewriting
- URL Rewriting and HttpSession
- Scopes
- Request Scope – ServletRequest Class
- Session Scope – HttpSession Class
- Application Scope – ServletContext Class
- API for Using the Scopes
- HttpSession
- Model-View-View-Model (MVVM) and Model-View-Controller (MVC)
- Interactions
- Model, View, Controller
- Advantages of MVC
- MVVM Overview
- ViewModel vs Controller
- Leveraging both patterns
- MVVM Overview
- Introduction to RESTful Services
- SOA fundamentals
- JAX-WS vs JAX-RS
- REST Features
- REST Principles
- Defining resources and sub-resources
- Consuming data
- Using Application and ApplicationPath
- Resource locators
- SOA fundamentals
- Introduction to JAX-RS
- APIs and Implementations
- JAX-RS Overview, Annotations
- JAX-RS Implementations
- Runtime Environment
- Application Server, Servlet-Only Container
- Architectural and Implementation Perspectives
- Configuring the Application•
- Applications, Resources and Providers
- JAX-RS Applications
- Resource Classes and @Path
- Provider Classes and @Provider
- Default Lifecycles
- The Application Class and rest-path
- JEE Overview
- JEE Technologies
- HTTP Overview
- Requests (GET/POST)
- Responses
- URLs
- Resource Mappings
- Request Parameters
- Web Applications
- Structure
- WAR File
- Context Root
- Deployment
- Servlet Basics
- Overview and API
- Static versus Dynamic Content
- Servlets
- Role in a Web App
- Servlet Interface
- GenericServlet Class
- HttpServlet Class
- Mapping a URL to a Servlet Class
- Web Container
- Requests and Responses
- HttpServletRequest
- Reading HTTP Request Headers
- HTML Forms
- Reading HTTP Request Parameters
- HttpServletResponse
- Setting HTTP Response Headers
- Monitoring Requests and Responses
- HttpServletRequest
- Overview and API
- Advanced Servlets
- Servlet Lifecycle
- Overview
- Instantiation
- Initialization
- init(ServletConfig) Method
- init() Method
- Lazy Initialization
- Service
- Service() Method
- Relationship of service() to doGet()/doPost()
- Destruction
- Destroy() <ethod
- Servlet Configuration
- ServletConfig Interface
- Reading Initialization Parameters
- Deployment Descriptors
- Web.xml
- <servlet> Element
- <servlet-mapping> Element
- <welcome-file-list> Element
- Vendor-web.xml
- Web.xml
- Servlet Threading
- Servlets are Singletons
- Servlets are Multithreaded
- Synchronization Techniques
- Servlet Lifecycle
- Session Tracking
- HttpSession
- Need for Sessions
- HttpSession Class
- Accessing the Session
- Session Invalidation
- Session Timeout
- Cookies
- Overview
- Cookie Class
- Cookie Expiration
- Sending Cookies to the Client
- Retrieving Cookies from the Client
- JSESSIONID
- URL Rewriting
- Overview and Need for URL Rewriting
- URL Rewriting and HttpSession
- Scopes
- Request Scope – ServletRequest Class
- Session Scope – HttpSession Class
- Application Scope – ServletContext Class
- API for Using the Scopes
- HttpSession
- Model-View-View-Model (MVVM) and Model-View-Controller (MVC)
- Interactions
- Model, View, Controller
- Advantages of MVC
- MVVM Overview
- ViewModel vs Controller
- Leveraging both patterns
- MVVM Overview
- Introduction to RESTful Services
- SOA fundamentals
- JAX-WS vs JAX-RS
- REST Features
- REST Principles
- Defining resources and sub-resources
- Consuming data
- Using Application and ApplicationPath
- Resource locators
- SOA fundamentals
- Introduction to JAX-RS
- APIs and Implementations
- JAX-RS Overview, Annotations
- JAX-RS Implementations
- Runtime Environment
- Application Server, Servlet-Only Container
- Architectural and Implementation Perspectives
- Configuring the Application•
- Applications, Resources and Providers
- JAX-RS Applications
- Resource Classes and @Path
- Provider Classes and @Provider
- Default Lifecycles
- The Application Class and rest-path