tworzę sesję używającJak sprawdzić, czy sesja istnieje, czy nie?
HttpSession session = request.getSession();
Przed utworzeniem sesji Chcę sprawdzić, czy istnieje, czy nie. Jak to zrobić?
tworzę sesję używającJak sprawdzić, czy sesja istnieje, czy nie?
HttpSession session = request.getSession();
Przed utworzeniem sesji Chcę sprawdzić, czy istnieje, czy nie. Jak to zrobić?
Istnieje funkcja request.getSession(boolean create)
Parametry:
create
- prawda, aby utworzyć nową sesję dla tego wniosku, jeżeli jest to konieczne; fałszywy powrót null, jeśli nie ma bieżącej sesji
Tak więc, można po prostu przejść false
powiedzieć getSession
powrót null, jeśli sesja nie istnieje.
HttpSession session = request.getSession (true); if (session.isNew()) { ... coś zrobić } else { ... zrobić coś innego }
.getSession(true)
mówi Java do tworzenia nowej sesji, jeśli żaden nie istnieje.
to polubisz oczywiście zrobić również:
if(request.getSession(false) != null){
HttpSession session = request.getSession();
}
rzucić okiem na: http://java.sun.com/javaee/6/docs/api/javax/servlet/http/HttpServletRequest.html
okrzyki, Jørgen
Jeśli chcesz sprawdzić ten przed tworzenia, a następnie zrobić :
HttpSession session = request.getSession(false);
if (session == null) {
// Not created yet. Now do so yourself.
session = request.getSession();
} else {
// Already created.
}
Jeśli nie dbają o sprawdzenie tej po tworzenia, to można też zrobić tak:
HttpSession session = request.getSession();
if (session.isNew()) {
// Freshly created.
} else {
// Already created.
}
który oszczędza linię i boolean
. Numer request.getSession()
jest taki sam jak request.getSession(true)
.
Zdefiniuj klasę, na przykład SessionTimeoutIndicator, która implementuje interfejs javax.servlet.http.HttpSessionBindingListener
. Następnie utwórz obiekt SessionTimeoutIndicator i dodaj go do sesji użytkownika. Po usunięciu sesji metoda SessionTimeoutIndicator.valueUnbound()
zostanie wywołana przez silnik Servlet. Następnie można zaimplementować valueUnbound()
, aby wykonać wymaganą operację.
if(null == session.getAttribute("name")){
// User is not logged in.
}else{
// User IS logged in.
}
Chciałbym dodać, że jeśli utworzysz nową sesję dla każdego nowego użytkownika łączącego się z Twoją witryną, Twoje wyniki będą miały poważne skutki. Użyj request.getSession (false), aby sprawdzić, czy użytkownik ma sesję. Dzięki tej metodzie nie tworzysz nowej sesji, jeśli chcesz renderować widok na podstawie tego, czy użytkownik jest uwierzytelniony, czy nie.
... najlepsze wytłumaczenie imho ... odnosi się do doktorów i skupia się na nich. –