Advance Java

Advance Java, J2EE COURSE. ->

Introduction to Web Application Technologies

  • Describe web applications
  • Describe Java Platform, Enterprise Edition 5(Java EE 5)
  • Describe Java servlet technology
  • Describe Java Sever Pages technology
  • Define three-tier architecture
  • Define Model-View-Controller (MVC) architecture

Servlet Basics

  • Multitier J2EE Application, J2EE Components, Servlet Container
  • HTTP Basics
  • HttpServletRequest object
  • HttpServletResponse object
  • Servlet APIs
  • Servlet Life Cycle
  • Web application packaging and deployment
  • The Mappings in deployment descriptor

Implementing Servlets

  • Including requests
  • Redirecting requests
  • Forwarding requests
  • Scope Attributes
  • Using config params
  • Servlet thread model
  • Error Handling

Session Management

  • Managing Sessions(HttpSession)
  • Cookies,
  • URL rewriting
  • HttpSession APIs
  • Session Attribute Objects


  • ServletContextListener
  • HttpSessionListener
  • HttpServletRequestListener

JSP Basics

  • JSP architecture models
  • JSP Life cycle
  • JSP Building Blocks
  • Writing Scriplets
  • Using Expressions
  • Types of Directives
  • Declarations
  • Using Javabeans in JSP

Advance JSP

  • Static and Dynamic Inclusion
  • Error Handling
  • JSP implicit variables and objects
  • Expression Language
  • JSTL Core Standard tags
  • Developing Custom Tags

Developing complete WebApp

  • Writing Web apps using MVC pattern
  • Database connectivity



Introduction to Struts2

  • MVC Design pattern(MVC1/2)
  • History of Struts/WebWork
  • Struts2 Architecture
  • Introduction to OGNL and value stack

Configuring a Struts Application

  • Configuration Elements
  • Actions
  • Results
  • Packages and Namespaces
  • Dynamic Method Invocation
  • Wildcard Mappings
  • files & support for multiple Struts Configuration files (generally for different modules)


  • Interceptor basics
  • Understand commonly used interceptors
  • Creating custom interceptors
  • Configuring interceptors

OGNL Type conversion

  • Sample Application with application Flow
  • Actions
  • OGNL and Value stack in details
  • Data Type Conversions in Struts2
  • Creating Custom Converts

Struts2 Tags

  • Generic Tags
  • UI Tags
  • Control Flow Tags

Validation Framework

  • Built in validation
  • Built in validators
  • Creating custom validators


  • The struts2 framework and java i18n
  • Localizing type conversions & error messages
  • Parameterizing messages
  • Formatting dates & numbers

Result Types

  • Result Types



Introduction to web services

  • The definition of distributed computing
  • The importance of distributed computing
  • Core distributed computing technologies such as the following:
  • Client/server, CORBA, Java RMI, Microsoft DCOM,Message-Oriented Middleware
  • Common challenges in distributed computing
  • The role of J2EE and XML in distributed computing
  • Emergence of Web services and service-oriented architectures

Designing the interface for a simple web service

  • Understanding web services concepts
  • Introduction to WSDL
  • Message Part
  • Operation
  • Port Type
  • Binding
  • Port
  • Target namespace
  • The difference between RPC style and document style web services
  • Understanding SOAP message format
  • Introduction to UDDI

Implementing a JAX WS web service

  • Implementing a SEI
  • @weservice and @webmethod annotations
  • Understanding server side generated artifacts and JAX-B under the hood
  • Understanding xml data types - marshelling/unmarshelling
  • Understand wsimport and wsgen utilities

Wrapped web services and Handlers

  • Motivation behind wrapped services
  • The Wrapped service implementation
  • Generating a wrapped and unwrapped clients for testing the web service
  • Interoperability perspective of the wrapped service implementation
  • Understand wsgen utility
  • Implement Client Side and Server Side Handlers
  • Use @Resource to add WebServiceContext to access header and payload in SIB

Handling complex data

  • Send and receive complex data structures to and from a web service
  • Fault generation in a web service

Understanding MTOM

  • Understand Soap with Attachments(SwA) vs. DIME vs. MTOM
  • MIME demo

Asynchronous WS (Invoking Lengthy operations)

  • Motivation behind Asynchronous web services
  • Different facets of Asynchronous operations
  • WS-Addressing from Web services perspective
  • Understanding the client consuming an Asynchronous web service
  • Creating an asynchronous client
  • Understanding Callback handlers

Web Services with Axis2

  • Using Axis2 with jaxws
  • Creating Bottom Up Web Service using Axis2 and Eclipse

Introduction to REST and Jax RS

  • Introduction to REST
  • Designing RESTful Services
  • Understanding HTTP methods and URI matching with REST
  • Implementing first JAX-RS Service

Extracting Request Information

  • URI Design
  • Extracting Request Parameters and query parameters
  • URIInfo Interface

Handling Data formats and Complex Responses

  • Handling xml data format
  • Handling JSON data format
  • Creating and using custom Response
  • Exception Handling
  • Content Negotiation
  • Web Linking


  • Authentication and Authorization in Securing JAX-RS



Spring Essentials

  • Why and what is Spring
  • Inversion of Control and Dependency Injection
  • Introduction to Bean Factory
  • Building your first Spring application
  • Spring liberaries and dependencies
  • XML Configuration files
  • Annotations

Spring Beans and Container Concepts

  • Spring Containers
  • Spring Configuration File
  • Spring Beans
  • Using the Container
  • The BeanFactory Interface
  • Singleton vs. Prototype
  • Bean Naming
  • Dependency Injection
  • Setter Injection
  • Constructor Injection

The Application Context

  • The ApplicationContext Interface
  • Accessing Application Components
  • Accessing Resources
  • Internationalization with MessageSource
  • Application Events

Data Validation and Conversion

  • The Validator Interface
  • The Errors Interface
  • The ValidationUtil Class
  • Validator Example
  • Testing the Validator
  • Property Editors
  • Custom Property Editors

Spring and AOP

  • Overview of AOP
  • Creating advice
  • Defining Pointcuts
  • Creating introductions
  • Using Proxy Factory Bean
  • Autoproxying

Spring and Data Access

  • Using JDBC with Spring
  • Using Exception Handling support of Spring
  • Data access with ORM support

Managing Transactions and Resources

  • Programming transactions in Spring
  • Declaring transactions
  • DataSource declarations

Spring JMS

  • Overview
  • Templates
  • Connection, Destination, Transaction management
  • Sending and Receiving Messages(synch/asynch)
  • Listeners
  • Message-driven POJOs

Spring Web Framework

  • General architecture
  • Controllers
  • Handle mappings
  • Handlers
  • View resolver
  • Data bindings

Spring Security Acegi Framework

  • Overview
  • Installation
  • Architecture
  • Configuration
  • Web Security
  • AOP-based security
  • Integration

Integration Support with other Frameworks

  • Struts Integration with Spring
  • Hibernate Integration with Spring



Introduction to Ajax

  • Characteristics & Issues of Conventional Web Applications
  • What is Rich User Experience
  • What is Ajax
  • Need for Ajax
  • Features of Ajax
  • Ajax : Real Life Examples
  • Technologies Used in Ajax

Basics of Javascript

  • Introduction to JavaScript
  • Creating functions and calling them
  • Declaring local and global variables
  • Control flow statements (loops,if-else)
  • Types of Event Handling
  • Understanding the event phases
  • Creating and iterating Arrays
  • Using in-built JS objects(String, Math etc)
  • How to create Objects in js

Understanding Html DOM

  • Understanding DOM model
  • Different Node types
  • Properties of a Node
  • Methods of a Node
  • Document Object
  • How to handle Events in DOM

Basics of CSS

  • Inline CSS styles
  • Writing Internal Style sheets
  • How to Include external style sheets
  • Basic CSS syntax

The Basic Ajax Process

  • XMLHttpRequest: Methods & Properties
  • Creating an XMLHttpRequestObject
  • Using an XMLHTTPRequest Object
  • Handling Events
  • Handling the response
  • Ready states of the XMLHttpRequest
  • Using firefox/Chrome to debug Ajax

GET Ajax Call

  • Making a ‘Get’ Ajax call
  • Browser caching problem

POST Ajax Call

  • Making POST Ajax call
  • Get vs. Post Requests
  • Caching Problem

HEAD Ajax Call

  • Making HEAD request

Handling XML Request And Response

  • Handling XML Request & Response
  • Need for Sending data in XML format
  • Problems with Proprietary data formats
  • How to send XML data from client to server
  • Handling responseXML at Client from server
  • Parsing the XML response & Displaying results

Working with JSON

  • JSON vs. XML
  • JSON Data Structure
  • How to send and receive JSON data at client side
  • How to send and receive JSON data at server side
  • Using json library

Introduction to commonly used Toolkits Frameworks Libraries

  • Introduction to Prototype
  • Introduction to Jquery
  • Introduction to Dojo
  • Current Issues in Ajax



Introduction to Hibernate

  • Hibernate Technology Benefits
  • Hibernate Architecture Overview
  • POJO Concepts
  • Persistence lifecycle
  • Object identity: equals & hashcode

Basic Mapping concepts

  • Mapping POJOs to tables
  • Mapping properties to columns
  • Hibernate Datatypes
  • Collection Mapping: array, list, set, bag, idbag etc.
  • Basic Hibernate classes and interfaces: Configuration, SessionFactory, Session etc.

Mapping Relationships

  • Setting up One to One Association Mapping(Unidirectional/Bidirectional)
  • Setting up a One to Many and Many to One Association Mapping(Unidirectional/Bidirectional)
  • Setting up an Inheritance relationship
  • Importance of “inverse”, “cascade”, “fetch” attributes

Working with Queries

  • Introduction to HQL
  • Working with the Query API
  • Working with Binding Parameters
  • Criteria Queries
  • Collection Filters
  • Externalizing queries

Using Hibernate Transaction support

  • Hibernate transaction API
  • Isolation levels
  • Using Hibernate Transaction API
  • Optimistic and Pessimistic locking (versioning)

Hibernate Caching

  • Caching overview
  • Hibernate Caching Architecture
  • Hibernate API to control cache
  • Working with EHCache
  • Using EHCache to enhance performance


  • Layer code(database layer) using hibernate and DAO pattern
  • Importance of HibernateUtil class using thread local pattern
  • N+1 design problem & approaches to solve it(Early Loading/Lazy Loading)


  • =============

Ant Introduction

  • What is Ant?
  • Platform-independent Ant
  • Ant vs. make
  • Installing ANT
  • Setting up the environment path
  • build.xml: Project workflow in XML
  • A proposed directory Structure

Ant Basics

  • Structure of an Ant build file
  • Writing the build file
  • Invoking the build file
  • Targets and tasks
  • Ant's built-in and third-party tasks
  • Basic Ant tasks: mkdir,delete, echo, javac, jar, java
  • Invoking the targets
  • Target dependencies
  • Dependency resolution

Advanced Ant
    • Using the build.properties file
    • Property referencing another property
    • Ant's built-in properties
    • Ant data types
    • FileSets, DirSets, and PatternSets
    • Paths and Classpaths
    • Invoking Ant without an explicit classpath
    • Running the JAR file
    • Creating the JAR Manifest
    • Automatic generation of a build number
    • Build number in JAR Manifest
    • Creating Javadoc documentation

    Quick Overview of Other Ant Tasks

    • antcall task
    • ant task
    • copy task
    • condition task
    • fail task
    • available task

    Deploying on to an application server

    • Defining an all target
    • Tips: Writing your build file
    • Ant and Testing Tools
    • Core vs. optional tasks
    • Automate unit testing


    • JUnit task
    • Writing JUnit test cases
    • Compiling and running the test cases
    • JUnitReport task: Generating test reports


    • Repository
    • Creating a new project with Maven

    The Maven development life cycle

    • Compiling
    • Testing and building your application Dependency management with Maven
    • Resolving Dependency conflicts Using Maven dependency management in Ant
    • Using Maven in Eclipse Using plugins to customize the build process
    • Integrating Ant and Maven Multi-module projects Aggregation and Inheritence
    • Setting up a local Maven Repository
    • Deploying to a web application server
    • Automating the release process Using Maven on legacy applications

    Advance Java

    Quick Callback