当用户在JSP和Servlet中使用会话登录失败时出现错误消息



我的目标是在用户登录系统失败时创建一条错误消息。我设法使用会话创建了一条错误消息。

但是,当我刷新浏览器时,错误消息仍然存在。它不应该出现。当用户刷新浏览器时,我有没有办法让错误消息不可见?

以下是我的代码。我们将不胜感激。。谢谢!:)

login.jsp

<div class="error">
<% String e = (String) session.getAttribute("error" );
if(e != null)
{
out.print(e); 
}%>
</div>

Servlet

HttpSession session = request.getSession(true);
session.setAttribute( "error", "Invalid username or password");
RequestDispatcher dispatcher = request.getRequestDispatcher("/login.jsp");
dispatcher.forward( request, response); 

会话属性在HttpSession的持续时间内有效。尝试使用请求属性

request.setAttribute( "error", "Invalid username or password");

其仅持续请求的持续时间。

否则,您将不得不从HttpSession中删除该属性。

您可以使用请求对象,也可以检查会话中是否存在会话属性,如果存在,则可以删除该属性。

即。jsp

<% String e = (String) session.getAttribute("error" );
if(e != null)
{
out.print(e); 
}else{
out.print("All Is Well");
}>

servlet

HttpSession session = req.getSession(true);
try{
if(null != (session.getAttribute("error"))){
session.removeAttribute("error");
}else{
session.setAttribute( "error", "Invalid username or password");
}
}catch(Exception er){
er.printStackTrace();
}
RequestDispatcher dispatcher = req.getRequestDispatcher("/jsp/LoginTest.jsp");
dispatcher.forward( req, res); 

相关内容

最新更新