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

2024-04-01

这是来自 login.jsp 的部分代码

登录.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 代码中,如果用户不存在,我将使用带有错误消息的 requestdispatcher

servlet

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") 是否为 null 。是不是然后调用<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>

要了解有关 ${} 事物的更多信息(表达语言 https://stackoverflow.com/tags/el/info,这是一个独立的主题JSTL https://stackoverflow.com/tags/jstl/info), 检查这里 http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html#wp71019.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录失败后在登录页面显示错误消息 的相关文章

随机推荐