#java #jsp #servlets
#java #jsp #сервлеты
Вопрос:
Я действительно инициализирую переменную sessionScope при запуске приложения. Как правильно это сделать?
// Редактировать: Во-первых, я хочу извиниться за мой непонятный вопрос. Все, что я хочу, это: слушатель или что-то в этом роде, который может прослушивать при первом запуске приложения, создавать сеанс и присваивать ему атрибут.
Спасибо
Комментарии:
1. Что вы подразумеваете под «каждый раз, когда оно запускается»? Если вы имеете в виду «для каждого отдельного запроса», то вы можете использовать область запроса вместо области сеанса.
2. Я имею в виду, когда оно запускается, а не каждый раз. Извините за ошибку
3. Вопрос бессмысленный. Переменные области действия сеанса инициализируются сеансом по определению.
4. Я действительно хочу извиниться за мой трудный для понимания вопрос и тратить ваше время. Поэтому я редактирую свой вопрос и надеюсь, что его будет легче понять.
Ответ №1:
Реализовать HttpSessionListener
.
@WebListener
public class SessionConfigureListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
event.getSession().setAttribute("foo", new Foo());
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
// NOOP.
}
}
Вот и все. Если вы все еще не используете Servlet 3.0 (Tomcat 7, Glassfish 3 и т. Д.) Тем не менее, Тогда вам нужно зарегистрировать его как <listener>
in web.xml
вместо использования @WebListener
аннотации.
Ответ №2:
Я действительно инициализирую переменную sessionScope для своего приложения каждый раз, когда оно запускается.
sessionScope создается для сеанса, поэтому при запуске вашего приложения сеанс не создается.
Вероятно, вам нужна область приложения для нее.
или, если вы хотите, чтобы каждый раз при отправке запроса вы хотели обрабатывать область сеанса, вы можете сделать это с помощью Filter
Ответ №3:
Используйте jsp: спецификацию тега useBean
Если вы установите атрибут класса, то, если в области сеанса отсутствует компонент, он будет создан (должен присутствовать конструктор по умолчанию)