Ich versuche, meine erste App auf Google App Engine
zu schreiben, versuchte ich eine Sitzung zu verwalten, erstellte ich eine Anmeldeseite auf Senden, rufen Sie es auf servlet
, Servlet überprüft den Benutzer und erstellt eine neue Sitzung Verwenden Sie den folgenden Code.Wenn Sitzung existiert oder nicht
void createSession(String Username) {
getThreadLocalRequest().getSession(true).setAttribute("Username", Username);
}
Anmeldeseite nach dem Servlet-Aufruf leitet zu einem gewissen Seite dh abc.jsp
, meine abc.jsp
Seite enthält
<body><%
try {
if (request.getSession(false) == null) {
} else {
%>
Welcome to
<%=session.getAttribute("Username")%>
<%
if (session.getAttribute("Username").equals("")) {
%>
<a href="login.jsp"><b>Login </b></a>
<%
} else {
%>
<a href="logout.jsp"><b>Logout</b></a>
<%
}
}
} catch (Exception e) {
}
%></body>
es funktioniert gut, aber wenn ich abc.jsp
Zugriff ohne Erstellen einer Sitzung es wirft ein Ausnahme an dieser if (session.getAttribute("Username").equals(""))
Linie, weiß ich nicht, warum bitte mir helfen. Ich denke, es erkennt nicht, ob eine Sitzung existiert. aber ich habe so viele Threads gelesen wie this Es gab mir diese Lösung, ich weiß nicht was ich falsch mache.
danke das hat funktioniert, aber das ist mir eine andere Geschichte >> http://stackoverflow.com/questions/2818251/how-to-check-if-session-exists-or-not << Ich dachte, wenn schadet es nicht, diesen Code zu verwenden? –
Nun .. ein Session-Objekt wird automatisch erstellt, wenn ein Benutzer eine Site auf Ihrem Server anfordert, auch wenn Sie 'getSession ()' nicht manuell aufrufen. Aber natürlich ist diese "default-session" leer, das heißt, sie hat keine Attribute, also liefert 'getAttribute () '' null' zurück. –
Pr0gr4mm3r