Объекты сеанса и запроса - PullRequest
0 голосов
/ 21 марта 2009

В Struts, где создается объект сеанса и какой класс или метод его создает? Кроме того, где создается объект запроса и какой класс или метод его вызывает?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 10 января 2011
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 ().

Объект request & session создается используемым веб-контейнером и передается соответствующим методам.

1 голос
/ 21 марта 2009

Объект запроса создается внутри вашего контейнера сервлета (tomcat / jetty / что угодно).

Сессия в основном создается тем, кто сначала вызывает getSession для HttpServletRequest . Обычно веб-фреймворки делают это только тогда, когда кто-то на самом деле заявляет, что ему нужен сеанс. Если вы хотите узнать, когда это произойдет, я предлагаю вам использовать «перейти к реализации» в вашей IDE, установить точку останова и запустить приложение (обратите внимание, что есть две перегрузки)

0 голосов
/ 08 августа 2009

В Struts экземпляр ActionForm можно сохранить в HttpSession или в HttpServletRequest .

Это зависит от scope , определенного в теге action внутри файла struts-config.xml .

ActionForm обычно хранится с использованием имени, определенного в теге action-form .

...