在Struts2.x为了方便的解决这些内置对象的操作,专门提供有一个ServletActionContext的类,这个类里面可以方便的取出常用内置对象:org.apache.struts2.ServletActionContext的类
取得pageContext:
public static javax.servlet.jsp.PageContext getPageContext()
取得request:
public static javax.servlet.http.HttpServletRequest getRequest()
取得response:
public static javax.servlet.http.HttpServletResponse getResponse()
取得application:
public static javax.servlet.ServletContext getServletContext()
Http对象可以通过HttpServletRequest接口里面定义的getSession()方法取得.
范例:观察内置对象的信息取得
package cn.zwb.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.xml.ws.http.HTTPBinding;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class EchoAction extends ActionSupport {
private String msg;
public void setMsg(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
@Override
public String execute() throws Exception {//执行操作
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
ServletContext application=ServletActionContext.getServletContext();
HttpSession session=request.getSession();
System.out.println("取得请求类型"+request.getContentType());
System.out.println("回应类型:"+response.getContentType());
System.out.println("真实路径"+application.getRealPath("/"));
System.out.println("session id"+session.getId());
this.msg="ECHO"+this.msg;
return Action.SUCCESS; //返回路径映射的key
}
}
日后如果要由Action传递request属性或者是在session中保存登录信息的话,这些操作就可以使用了.