这是login.jsp中代码的一部分
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>
Run Code Online (Sandbox Code Playgroud)
在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);
}
Run Code Online (Sandbox Code Playgroud)
但是<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"));
}
%>
Run Code Online (Sandbox Code Playgroud)
如果你去JSTL会更好:
<c:if test="${not empty errorMessage}">
<c:out value="${errorMessage}"/>
</c:if>
Run Code Online (Sandbox Code Playgroud)
要了解有关这些$ {}事物的更多信息(表达语言,这是与JSTL不同的主题),请点击此处.
| 归档时间: |
|
| 查看次数: |
49326 次 |
| 最近记录: |