我正在尝试以这种方式使用用户名和密码登录。基于输入值,页面应该重定向。但我无法登录。
<%@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");
}
}
%>
答案 0 :(得分:1)
当你应该使用servlet时,你正在使用scriplet。 Servlet比scriplet更易于编写,测试和调试。
在您的代码中,您永远无法正确访问用户部分。您提供正确的管理员用户并通过,您应该被重定向到AdminHome.jsp
,否则您将通过response.sendRedirect("Adminerror.jsp");
如果用户为admin
,您应该被正确地重定向到AdminHome.jsp
(前提是您显示的内容之后没有其他内容)。但是否则你会调用两次sendRedirect
,这会导致错误。
如果用户不是管理员且多重定向错误,您至少应该单独测试管理部分的用户和密码,以避免response.sendRedirect("Adminerror.jsp");
分支。
您还应该尝试在浏览器中直接输入AdminHome.jsp
的网址,以确保可以从浏览器正确访问该网址。