Struts 2 Custom Interceptor Example Tutorial

In struts 2, we can create the custom interceptor by implementing the Interceptor interface in a class and overriding its three life cycle method.

For creating the custom interceptor, Interceptor interface must be implemented. It has three methods:

  1. public void init() It is invoked only once and used to initialize the interceptor.
  2. public String intercept(ActionInvocation ai) It is invoked at each request, it is used to define the request processing logic. If it returns string, result page will be invoked, if it returns invoke() method of ActionInvocation interface, next interceptor or action will be invoked.
  3. public void destroy() It is invoked only once and used to destroy the interceptor.

Interceptor can change the flow of the application by returning the string.


Example to create custom interceptor in struts 2

In this example, we are going to create custom interceptor that converts request processing data into uppercase letter.

You need to follow 2 steps to create custom interceptor

  1. Create an interceptor (must implement Interceptor interface)
  2. Define the entry of interceptor in the struts.xml file

1) Create an interceptor (must implement Interceptor interface)

By this interceptor, we are converting the name property of action class into uppercase letter.

The getStack() method of ActionInvocation returns the reference of ValueStack.

We are getting the value set in the name property by findString method of ValueStack.

The set method of ValueStack sets the name property by the specified value. In such case, we are converting the value of name property into uppercase letter and storing it into the valuestack.

The invoke method of ActionInvocation returns the information of next resource.

MyInterceptor.java

2) Define the entry of interceptor in the struts.xml file

To define the interceptor, we need to declare an interceptor first. The interceptors element of package is used to specify interceptors. The interceptor element of interceptors is used to define the custom interceptor. Here, we are defining the custom interceptor by upper.

The interceptor-ref subelement of action specifies the interceptor that will be applied for this action. Here, we are specifying the defaultstack interceptors and upper interceptor.

struts.xml

Other Required Resources

The other required resources are

  • index.jsp
  • Login.java
  • welcome.jsp

1) Create form to get input (index.jsp)

index.jsp

This jsp page creates a form using struts UI tags. It receives name from the user.

2) Create the action class

It is the simple action class containing name property with its setter and getter methods.

Login.java

3) Create view component

This jsp page displays the name input by the user.

welcome.jsp




Latest Courses