熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

struts2的action中獲得request response sessi

2022-06-13   來源: Java開源技術 

  在struts中有兩種方式可以得到這些對象

  非IoC方式

  要獲得上述對象關鍵Struts 中comopensymphonyxworkActionContext類我們可以通過它的靜態方法getContext()獲取當前Action的上下文對象有了這個對象我們想獲得其他幾個對象就好辦了

  ActionContext ctx = ActionContextgetContext();
    Map session = ctxgetSession();
    細心的朋友可以發現這裡的session是個map對象在Struts中底層的session都被封裝成了Map類型我們可以直接操作這個map 進行對session的寫入和讀取操作而不用去直接操作HttpSession對象

  另外orgapachestrutsServletActionContext作為輔助類(Helper Class)可以幫助您快捷地獲得這幾個對象

  HttpServletRequest request = ServletActionContextgetRequest();
    HttpServletResponse response = ServletActionContextgetResponse();
    HttpSession session = requestgetSession();
    如果你只是想訪問session的屬性(Attribute)你也可以通過ActionContextgetContext()getSession()獲取或添加session范圍(Scoped)的對象

  IoC方式(這種方式在tapestry中也是這樣實現的)
    要使用IoC方式我們首先要告訴IoC容器(Container)想取得某個對象的意願通過實現相應的接口做到這點具體實現

  publicclass IoCServlet extends ActionSupport implements SessionAware ServletRequestAware ServletResponseAware {
    private String message;
    private Map att;
    private HttpServletRequest request;
    private HttpServletResponse response;

  public String getMessage() {
    return message;
    }

  publicvoid setSession(Map att) {
    thisatt = att;
    }

  publicvoid setServletRequest(HttpServletRequest request) {
    thisrequest = request;
    }

  publicvoid setServletResponse(HttpServletResponse response) {
    thisresponse = response;
    }

  @Override
    public String execute() {
    attput(msg Hello World from Session!);

  HttpSession session = requestgetSession();

  StringBuffer sb =new StringBuffer(Message from request: );
    sbappend(requestgetParameter(msg));
    sbappend(
    Response Buffer Size: );
    sbappend(responsegetBufferSize());
    sbappend(
    Session ID: );
    sbappend(sessiongetId());

  message = sbtoString();
    return SUCCESS;
    }
    }

  在strutsxml的action中配置攔截器
    <interceptorref name=servletConfig></interceptorref>


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28124.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.