Tengo un formulario que toma un nombre de usuario y se lo pasa a LoginServlet.java
su vez:
LoginResultView.jsp
que aparece un mensaje de "Inicio de sesión exitoso,% username%"forma :
<form method="POST" action="LoginResult.do">
<div>
<label id="username-label" for="usr">username:</label><br/><br/>
<input type="text"
value="Enter a username"
class="form-control form-input-field form- username-input-field default"
id = "form-username-input-field" name="login-username"
>
</div>
<button class="btn btn-success" type="submit">Sign up</button>
</form>
servlet:
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
IOException, ServletException {
String username = request.getParameter("login-username");
response.setContentType("text/html");
HttpSession session = request.getSession(false);
if (session==null) {
session = request.getSession(true);
session.setAttribute("loginUsername", username);
RequestDispatcher view= request.getRequestDispatcher("view/LoginResultView.jsp");
view.forward(request, response);
}
else {
response.getWriter().println(
"wow, how are you here, " +
session.getAttribute("loginUsername"));
response.getWriter().println(
session.getMaxInactiveInterval());
session.invalidate();
}
}
}
También tengo una barra de navegación que, si no hay sesión, muestra dos botones: Iniciar sesión y Registrarse y, si hay una sesión, muestra un loginUsername
atributo asociado con esa sesión:
<% HttpSession session2 = request.getSession(false);
if (session.getAttribute("loginUsername") != null) {
%>
<div class="dropdown navbar-link">
<button class="btn btn-secondary dropdown-toggle"
type="button" id="dropdownMenuButton"
data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<a target='_blank' href="${pageContext.request.contextPath}/Login.jsp">
<%out.println(session2.getAttribute("loginUsername"));%>
</a>
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item"
target='_blank' href="${pageContext.request.contextPath}">Profile</a>
<a class="dropdown-item"
target='_blank' href="#">Link2</a>
<a class="dropdown-item"
target='_blank' href="${pageContext.request.contextPath}/LogoutResult.do">
Log out
</a>
</div>
</div>
<%
}
else {
%>
<a target='_blank' href="${pageContext.request.contextPath}/Login.jsp"
class="btn btn-info" role="button">Log in
</a>
<a target='_blank' href="${pageContext.request.contextPath}/Login.jsp"
class="btn btn-info" role="button">Sign up
</a>
<%
}
%>
El problema es este: incluso si aparentemente no hay sesión (son los dos botones Iniciar sesión y Registrarse allí arriba) cuando lleno el formulario y lo envío, LoginServlet
sigo recibiendo un mensaje wow, how are you here, null 120
(120 es un session-timeout
, especificado en el archivo web.xml ) Luego, solo puedo enviar los datos del formulario enviando los mismos datos POST nuevamente (hago clic en el botón redondo Renovar y hago clic en Aceptar para guardar los datos anteriores). Solo después de eso obtengo la LogoutResultView.jsp
página.
¿Por qué pasó esto? ¿De dónde null
viene esta sesión? ¿Cómo lo soluciono?
¿Se requiere la regla de potencia de 2 en Andengine GLES2, o fue solo para GLES1? Sé que se recomienda crear su BitmapTextureAtlas con valores de ancho y alto como potencia de 2, 512x512 para ...
Estoy interesado en conocer el funcionamiento de ResultSet en profundidad. Tengo muchas dudas sobre ResultSet. como el rendimiento en cuanto a cuál es mejor. while (rs.next ()) {// itera tan bien como ...
Revisé la siguiente publicación. ¿Cuáles son los valores predeterminados utilizados en la clase StandardPBEStringEncryptor, es decir, qué algoritmo, generador de sal, no de hashing, etc.? Cualquier enlace que proporcione todos esos valores. [[1]: ...
Estoy tratando de crear múltiples Arraylist <Integer> a partir de un rango de int, pero cuando trato de omitir algunos elementos, todo está en mal estado. Dividí los números en 5 ArrayList diferentes <> y en ...