会话和请求的对象

时间:2009-03-21 05:47:47

标签: java jsp web-applications java-ee struts

在struts中,会话对象在哪里创建&哪个类或方法创建它?同样,请求对象在哪里创建&哪个类或方法调用它?

提前致谢

3 个答案:

答案 0 :(得分:1)

请求对象在servlet容器中创建(tomcat / jetty / whatever)。

会话基本上是由首先在HttpServletRequest上调用getSession的人创建的。通常,只有当某人实际声明他们需要会话时,Web框架才会这样做。如果你想知道何时发生这种情况,我建议你在IDE中使用“go to implementation”并设置一个断点并运行应用程序(注意有两个重载)

答案 1 :(得分:1)

import com.opensymphony.xwork2.ActionSupport;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;

public class MyAction extends ActionSupport implements SessionAware,ServletRequestAware
{
    Map<String,Object> session;
    HttpServletRequest servletRequest;

    public void setSession(Map<String, Object> session) {

        this.session = session;
    }

    public void setServletRequest(HttpServletRequest hsr) {
       this.servletRequest=hsr;
    }

    public String execute()
    {
       return SUCCESS;
    }
}

每当调用此操作时,首先调用setServletRequest,然后调用setSession()。

请求对象&amp;会话由您正在使用的Web容器创建并传递给相应的方法。

答案 2 :(得分:0)

在Struts中, ActionForm 实例可以存储在 HttpSession HttpServletRequest 中。

这取决于 struts-config.xml 文件中操作标记中定义的范围

ActionForm 通常使用 action-form 标记中定义的名称进行存储。