Struts2.x中獲取request,response,session的方式有兩種:非IOC方式和IOC方式:
一:非IOC方式:
要獲得request,response,session 這些對象,關鍵是Struts2.x中的com.opensymphony.xwork2.ActionContext類。
我們可以通過它的靜態方法getContext()獲取當前Action的上下文對象。另外,org.apache.struts2.ServletActionContext作為輔助類(Helper Class),可以幫助您快捷地獲得這幾個對象。
HttpServletRequestrequest = ServletActionContext.getRequest();
HttpServletResponseresponse = ServletActionContext.getResponse();
HttpSession session =request.getSession();
如果你只是想訪問session的屬性(Attribute),你也可以通過ActionContext.getContext().getSession()獲取或添加session范圍(Scoped)的對象。
二:IOC方式:
要使用IoC方式,我們首先要告訴IoC容器(Container)想取得某個對象的意愿,通過實現相應的接口做到這點。如實現SessionAware, ServletRequestAware, ServletResponseAware接口,從而得到上面的對象。