В asp.net global.asax
может иметь событие session_start. когда пользователь впервые посещает веб-сайт, начинается сеанс, событие срабатывает. это похоже на struts или java?
Начало сеанса в struts 2.0
Ответы (3)
Вы можете реализовать интерфейс javax.servlet.http.HttpSessionListener и зарегистрировать его в файле web.xml. Методы вашего класса реализации будут вызываться при создании/уничтожении сеанса и т. д.
Запись в web.xml будет выглядеть примерно так:
<listener>
<description>sessionListener</description>
<listener-class>
your.com.HttpSessionListenerImplementation
</listener-class>
</listener>
Это не связано со стойками, а является частью API сервлета и доступно в любом контейнере сервлета.
Не в 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, хотя мы могли бы получить его и таким образом).
Как правило, вы хотели бы сделать что-то особенное, когда кто-то входит в систему, и действие входа было бы хорошим местом, чтобы поместить то, что вы хотите, в сеанс. По какой-то причине вы хотите что-то сделать раньше, чтобы повторить:
- Создать собственный перехватчик SessionSetup
- Зарегистрируйте свой перехватчик и создайте собственный стек перехватчиков в struts.xml.
- Все ваши пакеты используют этот стек.
Вы можете использовать перехватчик области сеанса, предоставленный в struts 2, для управления сеансом. Ниже приведено его хорошее применение. Вы можете указать, хотите ли вы начать сеанс с помощью параметра «старт».
<interceptor-ref name="scope">
<param name="type">start</param>
<param name="session">revisionList,revisionManagmentDetails</param>
<param name="key">revisionManagementSessionKey</param>
</interceptor-ref>