Начало сеанса в struts 2.0

В asp.net global.asax может иметь событие session_start. когда пользователь впервые посещает веб-сайт, начинается сеанс, событие срабатывает. это похоже на struts или java?


person user1883329    schedule 11.05.2013    source источник


Ответы (3)


Вы можете реализовать интерфейс javax.servlet.http.HttpSessionListener и зарегистрировать его в файле web.xml. Методы вашего класса реализации будут вызываться при создании/уничтожении сеанса и т. д.

Запись в web.xml будет выглядеть примерно так:

<listener>
    <description>sessionListener</description>
    <listener-class>
        your.com.HttpSessionListenerImplementation
    </listener-class>
</listener>

Это не связано со стойками, а является частью API сервлета и доступно в любом контейнере сервлета.

person Dev Blanked    schedule 11.05.2013

Не в Struts2, ну, не как встроенная функция. Конечно, вы можете исправить это с помощью стека перехватчик/перехватчик.

В Java EE за сеанс отвечает сервер приложений. Таким образом, мы должны иметь возможность предположить, что у нас всегда есть сеанс, по крайней мере, с точки зрения struts2.

Этот парень показывает довольно наглядный пример создания перехватчика: http://www.mkyong.com/struts2/struts-2-creating-own-interceptor/

Подробнее о перехватчиках см.: http://struts.apache.org/release/2.1.x/docs/interceptors.html

В самом низу последней ссылки есть ссылка: Как мы можем получить доступ к сеансу (из Interceptor, потому что в действии мы будем использовать SessionAware, хотя мы могли бы получить его и таким образом).

Как правило, вы хотели бы сделать что-то особенное, когда кто-то входит в систему, и действие входа было бы хорошим местом, чтобы поместить то, что вы хотите, в сеанс. По какой-то причине вы хотите что-то сделать раньше, чтобы повторить:

  1. Создать собственный перехватчик SessionSetup
  2. Зарегистрируйте свой перехватчик и создайте собственный стек перехватчиков в struts.xml.
  3. Все ваши пакеты используют этот стек.
person Quaternion    schedule 11.05.2013

Вы можете использовать перехватчик области сеанса, предоставленный в struts 2, для управления сеансом. Ниже приведено его хорошее применение. Вы можете указать, хотите ли вы начать сеанс с помощью параметра «старт».

<interceptor-ref name="scope">
                <param name="type">start</param>
                <param name="session">revisionList,revisionManagmentDetails</param>
                <param name="key">revisionManagementSessionKey</param>
            </interceptor-ref>
person user3820414    schedule 02.05.2018