Estoy tratando de escribir mi primera aplicación en Google App Engine
, estaba tratando de mantener una sesión, creé una página de inicio de sesión en submit, call a servlet
, servlet valida al usuario y crea una nueva sesión usando el siguiente código.Si la sesión existe o no
void createSession(String Username) {
getThreadLocalRequest().getSession(true).setAttribute("Username", Username);
}
la página de inicio de sesión después de llamar al servlet vuelve a dirigir a alguna página es decir abc.jsp
, mi página de abc.jsp
contiene
<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>
funciona bien, pero cuando accedo abc.jsp
sin crear una sesión que está lanzando una excepción en esta línea if (session.getAttribute("Username").equals(""))
, no sé por qué amablemente me ayude. Creo que no detecta si la sesión existe. pero he leído tantos hilos como this Me dio esta solución, no sé qué estoy haciendo mal.
gracias que funcionó, pero esto me dice una historia diferente >> http://stackoverflow.com/questions/2818251/how-to-check-if-session-exists-or-not << Estaba pensando si no hay daño en usar ese código? –
Bien ... un objeto de sesión se crea automáticamente cuando un usuario solicita un sitio en su servidor, incluso si no se llama 'getSession ()' manualmente. Pero, por supuesto, esta "sesión predeterminada" está vacía, lo que significa que no tiene atributos, por lo que 'getAttribute ()' devuelve 'null'. –
Pr0gr4mm3r