First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Course JAV103 Java Spring Framework Application Development

Duration: 5 Days

Intended Audience

Delegates must be familiar with Java and the general principles of object oriented programming (OOP).

Prior exposure to the following concepts and technologies will be helpful

  • General understanding of web development principles
  • Basic knowledge of HTML and CSS
  • Basic knowledge of JavaScript
  • Understanding of Java Annotations
  • Basic understanding of the HTTP protocol, including concepts like SSL, redirection, GET vs POST, etc.
  • Basic knowledge of SQL


This Spring/Hibernate course covers the development of enterprise Java web applications with the Spring, Hibernate, and Spring Security (Acegi) open-source frameworks.

Course Objectives

To teach the student

  • The Principles of Java Web Application Development
  • The advantages, disadvantages and best practices of developing Java Servlets
  • How to develop Java Servlet Filters
  • How to develop JavaServer Pages (JSP), take advantage of JSTL and JSP Expression Language (EL)
  • How to package, deploy, and troubleshoot Java Web Applications.
  • How to access relational databases via JDBC
  • How to set up container-managed database connection pool (DBCP) accessed through JNDI
  • How to configure container-managed security (authenticating against a relational database)
  • To appreciate the advantages of deploying an ORM solution in contrast a bare-bones JDBC solution
  • How to install, configure, and use Hibernate (with Annotations) for the persistence layer
  • How to install, configure, and use Spring for the Business and DAO layers
  • Appreciate the advantages of POJOs and AOP-style development with Spring
  • How to to use Spring MVC to replace Servlets, acquire support for binding, validation, navigation, error handling, etc.
  • How to set up and utilise Spring's Security (a.k.a. Acegi) framework
  • How to configure an application server for SSL, and force SSL use where needed
  • The essentials of AJAX, and how to use AJAX with Spring through the Prototype JS library
  • How to use the Eclipse for Java EE IDE
  • How to automate common development tasks with Ant and Maven

Course Outline

  • Overview
    • Overview of Java EE (a.k.a. J2EE)
  • Java Web Applications
    • Overview of Java Web Application Development
    • Overview of Servlets
    • Java Web Application development life-cycle
      • Writing Code
      • Compiling Code
      • Writing Deployment Descriptors (WEB-INF/web.xml files)
      • Packaging web applications (generating WAR files)
      • Deploying web applications (e.g. on Tomcat)
    • Overview of Java Servlet Filters
    • Overview of JavaServer Pages (JSP)
    • Overview of JSTL
    • Overview of JSP Expression Language (EL)
  • Database-driven Java Web Applications
    • Connecting to databases from Java web applications
    • Review of JDBC
    • Overview of JNDI
    • Overview of container-managed database connection pools (DBCP)
    • Overview of DAO design pattern
    • Using both Servlets and JSPs through clean design: examples and labs
  • Hibernate
    • Overview of ORM frameworks
    • Overview of Hibernate
    • Overview of EJB3's JPA
    • Switching from JDBC to Hibernate
    • Installing and configuring Hibernate
    • Overview of Hibernate Annotations
    • Overview of Hibernate Query Language (HQL)
    • Overivew of Hibernate caching (through EHcache)
  • Spring Framework
    • Overivew of Model-View-Controller (MVC) design pattern
    • Overview of the overall Spring framework (as a replacement for EJB)
    • Overview of Spring MVC
    • Switching from Servlets to Spring
    • Installing and configuring Spring
    • Overview of Spring Controllers
    • Overview of Spring Validators
  • Spring Security Framework
    • Overview of container-managed security
    • Overview of Spring Security framework (a.k.a. Acegi)
    • Switcing from container-managed to Spring security
    • Installing and configuring Spring Security
    • Exposing security context in the application