位置:首頁 > Java技術 > Struts2教學 > 如何獲取ServletContext對象

如何獲取ServletContext對象

在Struts2中,可以使用以下兩種方法來獲取ServletContext對象。

1. ServletActionContext

直接從 org.apache.struts2.ServletActionContext 獲取 ServletContext 對象。
import javax.servlet.ServletContext;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
 
public class CustomerAction extends ActionSupport{
	
	public String execute() throws Exception {
		
		ServletContext context = ServletActionContext.getServletContext();
		
		return SUCCESS;
		
	}

}

2. ServletContextAware

讓你的類實現了org.apache.struts2.util.ServletContextAware接口。
當Struts2 的 “servlet-config”攔截器是看到了一個Action類實現ServletContextAwareinterface,它會通過一個ServletContext引用Action類通過setServletContext()方法請求。
import javax.servlet.ServletContext;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
 
public class CustomerAction 
    extends ActionSupport implements ServletContextAware{

	ServletContext context;
	
	public String execute() throws Exception {
		
		return SUCCESS;
		
	}

	public void setServletContext(ServletContext context) {
		this.context = context;
	}
}

參考

  1. Struts 2 ServletContextAware文檔