如何在同一页面中登录用户和管理员

时间:2014-11-07 14:01:38

标签: mysql jsp

我正在尝试以这种方式使用用户名和密码登录。基于输入值,页面应该重定向。但我无法登录。

    <%@include file="database.jsp" %>
    <%

        String User = request.getParameter("User");
        String Pass = request.getParameter("Pass");

        if (User.equals("admin") && Pass.equals("admin123")) {
            response.sendRedirect("AdminHome.jsp");
        } else {
            response.sendRedirect("Adminerror.jsp");
        }

        if (User != "admin") {
            String sql = "select * from user where username='" + User + "' and password='" + Pass + "'";
            rs = st.executeQuery(sql);
            if (rs.next()) {

                response.sendRedirect("userhome.jsp");
            } else {
                response.sendRedirect("usererror.jsp");
            }
        }

    %>

1 个答案:

答案 0 :(得分:1)

当你应该使用servlet时,你正在使用scriplet。 Servlet比scriplet更易于编写,测试和调试。

在您的代码中,您永远无法正确访问用户部分。您提供正确的管理员用户并通过,您应该被重定向到AdminHome.jsp,否则您将通过response.sendRedirect("Adminerror.jsp");

如果用户为admin,您应该被正确地重定向到AdminHome.jsp(前提是您显示的内容之后没有其他内容)。但是否则你会调用两次sendRedirect,这会导致错误。

如果用户不是管理员且多重定向错误,您至少应该单独测试管理部分的用户和密码,以避免response.sendRedirect("Adminerror.jsp");分支。

您还应该尝试在浏览器中直接输入AdminHome.jsp的网址,以确保可以从浏览器正确访问该网址。