如果用户输入错误的密码,我试图将我的错误消息转发回登录页面。它适用于第一次尝试,但是当用户重新键入密码而不管密码是对还是错时,它将返回HTTP状态404
例如,在用户登录JSP中..如果用户以用户身份登录,
我会做一个条件,它将sendRedirect发送到用户页面。如果用户以管理员身份登录,其他地方将sendRedirect发送到管理员页面。 ----这部分,它工作得非常好,我正在使用调度员----
我在代码结构中的一个例子 的login.jsp
<form action="../loginController" method="post">
<p> Username : <input type="text" id="name" name="username" required/</p>
<p> password : <input type="text" name="password" required/> </p>
<button type="submit"> Submit </button>
</form>
<h2><%=request.getAttribute("errorMessage") %></h2>
/ - 当用户输入错误密码时,它应该重定向回此页面。在url中应将其输入为... / login.jsp --- /
/ -
我创建了一个servlet文件,我称之为loginController。我检索的用户数据来自oracle。获取数据的一切都非常好
唯一的问题是当我做这个条件时
--- /
Servlet是 loginController.java
if(loginRS.equals("user")){
response.sendRedirect("User/User.jsp"); /*--This is working --*/
} else if(loginRS.equals("admin")){
response.sendRedirect("Admin/Admin.jsp"); /*--This is working --*/
} else if(loginRS.equals("IncorrectPassword")) {
/*--- This is where the problem starts ---*/
RequestDispatcher rd =
request.getRequestDispatcher("./Login/login.jsp");
request.setAttribute("errorMessage", "Username Not found");
rd.forward(request, response);
/ - 到此为止,代码正常工作,唯一的问题是它存储在servlet.java中而不是将其转发回login.jsp - /
/ - 这是问题开始的地方,当我输入错误的密码时,它会返回errorMessage,因为找不到用户名。但是在我的urlPath中,它声明它仍在LoginController中。如果在第二次尝试,我输入正确的密码,它返回我找不到404页 - /
如果调用条件,我想到将下面的代码重定向到login.jsp。但我无法sendreDirect它。 response.sendRedirect是( “./登录/ login.jsp的”); }
提前谢谢
解决 基本上我遇到的问题是我的连接,因此导致错误404
答案 0 :(得分:1)
尝试从./
.
或request.getRequestDispatcher("./Login/login.jsp");