What is Java Server Faces and How to use it?

Java Server Faces is an MVC based framework to design User Interface for Server Side Technologies. We can use UI widgets in server based event handlers. The Java Servlet container is used to run these applications. JSF provides core libraries, UI components and many more extended features to create a well defined UI for Web server applications. In crux, JSF or Java Server Faces is a standard technology which is highly used in the Java Developers Community.

Java Server Faces Architecture

JSF architecture is based on the MVC (Model View Controller) architecture. UI Components can be rendered in many ways like Computing Device, HTML browser etc. The diagram for the JSF architecture is shown as follows.

Java Server Faces Architecture

Advantages of JSF

JSF is highly advantageous due to the following reasons:

  1. Presence of Reusable UI components
  2. JSF manages multiple server requests at a time
  3. Multiple Custom components can be used by implementing JSF
  4. Simple and Easy to maintain

Lifecycle of JSF

JSF lifecycle contains 6 phases as mentioned in the figure below.

Java Server Faces Lifecycle

Steps to create a simple JSF application:

The basic requirement is to install the archetype-webapp plugin. The step by step implementation in given below for Windows Operating System using Eclipse IDE.

  1. Open command prompt (cmd) to set the path for JSF application
  2. use the command: mvn archetype:create to initiate mavern
  3.  Add the JSF capability to the project. Also add all the JSF dependencies to the project.
  4. Open Eclipse IDE and create a new Java project
  5. Import the project created earlier using JSF capability using import button in Eclipse
  6. Configure the Faces Servlet in web.xml file of the project created in Eclipse
  7. Create a Managed Bean for the given package of the java program
  8. Create a JSF page under the web app directory in Eclipse IDE.
  9. Build the project and run it as an maven package
  10. Deploy WAR file, run the a wizard project and start the tomcat server.
  11. Run the complete application using the run command, which will launch the application on the server

Spring Framework for Web Technologies

Spring Framework is an open source application framework for java based platforms. It is used to build Web applications along with the use of Java Enterprise Edition (J2EE). It is very popular in Java Developer Community. It is highly lightweight and occupies only 2MB of storage space. It uses POJO (Plain Old Java Object) Development model to create faster J2EE applications.

Components of Spring Framework and its Architecture

Spring Framework architecture is a modular type of architecture. That means it is made up of multiple modules in the containers mentioned below:

  1. Test: It is the first and the lowest layer of Spring Architecture
  2. Core Container: It contains modules like Core, Beans, Context, and Regular Expressions etc.
  3. AOP (Aspect Oriented Programming), Aspects and Instrumentation
  4. Data Access integration: It contains modules like JDBC, ORM (Object Relational Mapping), OXM (Object XML Model), JMS (Java Messaging Service) and Transaction
  5. Web: This layer contains web connectivity and client-server connection modules like MVC, Web Socket Module, Web Portlet.

    Spring Framework Architecture

Advantages of Spring Framework

  1. Easy testing capabilities
  2. Lightweight and non invasive
  3. Fast Development Framework like JTA, JDBC, JMS etc. can be used along with Spring
  4. Powerful Abstraction implementation
  5. High validation and transaction support

Key features of Spring Framework

AOP (Aspect Oriented Programming)

AOP is a key element of this framework. In AOP the users are able to handle aspects like caching, logging, security, declarative transactions etc. AOP is used to conduct Aspect Oriented Implementation of Spring framework. Similar to a class in OOP (Object Oriented Programming), AOP is based on the concept of an Aspect.

Dependency Injection

DI or Dependency Injection keeps the Spring Framework application classes independent from other Java classes in the programming interface or API. We are able to integrate these independent classes by using DI. ‘D’ means Dependency which is an association of two classes. ‘I’ stands for Injection which is implementation of other classes with the help of the previous class.

Basic Steps to create a Application using Spring Framework

  1. Create a Java project in any IDE available like Eclipse IDE or NetBeans
  2. Install and add all the required Spring Framework Libraries that will be used in Spring Implementation
  3. Create Source Files for the Java program created in the 1st step
  4. Create Bean Configuration page inside the SRC directory to bind the classes together
  5. Run the program and deploy the application