Struts2中獲取JSP內置對象的方法

ccfc 9年前發布 | 5K 次閱讀 Java

Struts2中獲取HttpRequest,HttpResponse,HttpSession,Application,ServletContext及相關的Map對象。

import java.util.Map;

import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ApplicationAware; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.util.ServletContextAware;

import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings( { "serial", "unused", "unchecked" }) public class Test extends ActionSupport implements ServletRequestAware, ServletResponseAware, RequestAware, SessionAware, ServletContextAware, ApplicationAware {

private HttpServletRequest request;

private HttpServletResponse response;

private HttpSession session;

private Map<String, Object> requestMap, sessionMap, contextMap;

private ServletContext context;

@Override
public String execute() throws Exception {
    this.request = ServletActionContext.getRequest();
    this.request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);

    this.session = this.request.getSession();
    this.sessionMap = ActionContext.getContext().getSession();
    this.sessionMap = ServletActionContext.getContext().getSession();// 調用父類ActionContext的方法
    this.sessionMap = (Map<String, Object>) ActionContext.getContext().get(ServletActionContext.SESSION);

    this.response = ServletActionContext.getResponse();
    this.response = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);

    this.context = this.session.getServletContext();
    this.context = ServletActionContext.getServletContext();
    this.context = (ServletContext) ActionContext.getContext().get(ServletActionContext.SERVLET_CONTEXT);
    this.contextMap = ActionContext.getContext().getApplication();
    this.contextMap = ActionContext.getContext().getContextMap();
    this.contextMap = (Map<String, Object>) ActionContext.getContext().get(ActionContext.APPLICATION);
    this.contextMap = (Map<String, Object>) ActionContext.getContext().get(ServletActionContext.APPLICATION);

    return SUCCESS;
}

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

@Override
public void setServletResponse(HttpServletResponse response) {
    this.response = response;
}

@Override
public void setRequest(Map<String, Object> requestMap) {
    this.requestMap = requestMap;
}

@Override
public void setSession(Map<String, Object> sessionMap) {
    this.sessionMap = sessionMap;
}

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

@Override
public void setApplication(Map<String, Object> contextMap) {
    this.contextMap = contextMap;
}

}</pre>

 本文由用戶 ccfc 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!