登录失败后在登录页面中显示错误消息

这是login.jsp中的部分代码

         <h2 class="swd-postheader">Login</h2>

<form method="post" action="Login.select">

<p><input id="username" name= "username" type="text" placeholder="Username" style="margin:10px" autofocus required></p>

<p> <input id="password" name="password" type="password" placeholder="Password" style="margin:10px" required></p>

<p><input class="swd-button" type="submit" value="Sign In">

<a href="register.html"><button class="swd-button" type="button">New User</button></a>

</p>

</form>

<h2><%=request.getAttribute("errorMessage") %></h2>

</div>

</div>

在Servlet代码中,如果用户不存在,我正在使用带有错误msg的requestdispatcher

if(res.next())

{

if ((thisname.equals(res.getString("username"))) && (thispwd.equals(res.getString("password"))))

{

session.setAttribute("username", request.getParameter("username"));

response.sendRedirect("login-success.html");

}

else{

session.invalidate();

request.setAttribute("errorMessage", "Invalid user or password");

RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");

rd.forward(request, response);

}

但是<h2><%=request.getAttribute("errorMessage") %></h2>只要打开登录jsp

就会运行,并且在没有失败的情况下在页面上返回null。仅当失败发生时,它显示“无效的用户或密码”。所以我想检查request.getAttribute(“

errorMessage”)是否为空值 。是它不那么调用<h2><%=request.getAttribute("errorMessage")

%></h2>。我该怎么做?或者,还有更好的方法

回答:

由于您已经在jsp中使用了scriptlet,因此可以使用:

<%

if(null!=request.getAttribute("errorMessage"))

{

out.println(request.getAttribute("errorMessage"));

}

%>

如果您选择JSTL,那就更好了:

<c:if test="${not empty errorMessage}">

<c:out value="${errorMessage}"/>

</c:if>

以上是 登录失败后在登录页面中显示错误消息 的全部内容, 来源链接: utcz.com/qa/433337.html

回到顶部