如何在Servlet代码中警告消息并将sendredirect警告到JSP页面?

时间:2012-02-24 07:35:36

标签: java jsp servlets

我正在尝试创建一个简单的登录页面来处理使用JSP的数据库,带有MVC概念的servlet和数据访问对象(DAO),我是新手。我现在的问题是,如果用户输入无效的名称和密码并再次将sendRedirect输入login.jsp页面,我需要在servlet中提醒一条消息。如果用户有效,我将flag设置为1,然后执行if-check

if(validUserFlage == 1)
    response.sendRedirect("User_Manipulation_Interface.jsp");
else {   
    //Here i want to alert message cause user invalid ??
    response.sendRedirect("Admin_And_User_Login_Form.jsp");
}

搜索这个我找到了这个答案,但我不明白我该怎么做 我找到了答案: ((使用send redirect,你无法在代码中显示你想要的消息。所以我可能有两种方法。在这里显示一条消息并使用requestdispatcher的include而不是send redirect,或者将一些消息传递给admin.jsp和在那里显示消息。))

3 个答案:

答案 0 :(得分:3)

设置这样的标志参数,

 response.sendRedirect("Admin_And_User_Login_Form.jsp?invalid=true");

on jsp

<c:if test=${invalid eq 'true'}">invalid credentials</c:if>

答案 1 :(得分:2)

您可以在servlet页面中设置像errormsg这样的参数,并将其添加到ri-direct对象。然后你可以检查变量errormsg,如果它是null,那么用户名是正确的,否则用户名不正确..

在Servlet代码中:
如果(username.equal(databaseusername))

{
RequestDispatcher rd = request.getRequestDispatcher("NextPage.jsp");

req.setAttribute("errormsg", "");

rd.forward(request, response);  

}

else

{

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

req.setAttribute("errormsg", "Wrong Username or Password");

rd.forward(request, response);  

}

在JSP代码中:

<%

String msg=req.getAttribute("errormsg").toString();

if(!msg.equals(""))

{

// Print here the value of Msg.

}


%>

答案 2 :(得分:0)

In servlet
    String strExpired = (String) session.getAttribute("Login_Expired");
response.sendRedirect("jsp/page.jsp");

In jsp 
<%
String strExpired = (String) session.getAttribute("Login_Expired");
out.print("alert('Password expired, please update your password..');");

%>