JSP:getRequestDispatcher不转发到其他jsp文件

时间:2017-08-02 18:19:08

标签: java jsp servlets

如果用户输入错误的密码,我试图将我的错误消息转发回登录页面。它适用于第一次尝试,但是当用户重新键入密码而不管密码是对还是错时,它将返回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

1 个答案:

答案 0 :(得分:1)

尝试从./

中删除.request.getRequestDispatcher("./Login/login.jsp");