HttpServletRequest in Struts 2 Action Class

There are two ways to get the servlet request object inside struts 2 action class’s execute method.

  • ServletActionContext : Directly accessing the getRequest method from the ServletActionContext class will return the request object.
  • ServletRequestAware : If you implement the action class with ServletRequestAware interface, then struts controller will send the request object through setServletRequest method. You are requested to declare a variable for request object and write getter and setter methods.

1. ServletActionContext

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;

public class Struts2HelloWorldAction{
	public String execute() {
		HttpServletRequest request = ServletActionContext.getRequest();
		return "SUCCESS";
	}
}

2. ServletRequestAware

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;

public class Struts2HelloWorldAction implements ServletRequestAware{

	HttpServletRequest request;

	public String execute() {
		String paramValue = getServletRequest().getParameter("param");
		return "SUCCESS";

	}

	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}

	public HttpServletRequest getServletRequest() {
		return this.request;
	}
}

However, it is recommended to use ServletRequestAware instead of ServletActionContext method.

Comments

comments

About Krishna Srinivasan

He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.

Speak Your Mind

*