在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中保存登录信息的话,这些操作就可以使用了.