您好,我在netbeans的servlet中有此代码,但是我遇到了一个问题,当我以有效用户身份登录或无效时,它会使此URL保持localhost:8080/LogIN123/login
。 登录名是 servlet,它不会响应下一页。
谁能帮我?
程序必须输入用户名和密码,然后如果用户的Id
与主管相同,它将重新发送到另一个页面 他手下有员工,如果他只是一名员工,它会将他重定向到一个页面,其中包含有关他的信息而无需编辑。
public class login extends HttpServlet {
String url = "jdbc:mysql://localhost:3306/";
String dbName = "employee";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "root";
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String name;
String pass;
Connection conn;
Statement Stmt;
ResultSet rs;
try {
name = request.getParameter("username");
pass = request.getParameter("password");
Class.forName(driver);
conn = (Connection) DriverManager.getConnection(url + dbName, userName, password);
Stmt = conn.createStatement();
PreparedStatement ps = conn.prepareStatement("select * from emp_info where username=? && password=?");
rs = ps.executeQuery();
这里我有类名userbean,它控制了数据库中的数据
UserBean userBean = new UserBean();
这里有一个豆子列表,这些豆子将被发送到其他页面,其中包含用户信息
List<UserBean> listOfUserBean = new ArrayList<UserBean>();
if (rs.next()) {
userBean.setUserID(rs.getString("id"));
userBean.setUserName(rs.getString("username"));
userBean.setUserGender(rs.getString("gender"));
userBean.setUserSupervisour(rs.getString("supervisour"));
userBean.setUserBirthDay(rs.getString("BirthOfDate"));
userBean.setUserSalary(rs.getString("salary"));
}
listOfUserBean.add(userBean);
response.sendRedirect("mangerpage.jsp");
request.setAttribute("userlist", listOfUserBean);
下面的代码检查用户ID是否是同一个主管,这意味着他是某个员工的经理,他将获得显示其管理下所有员工的新页面
if (userBean.getUserID().equals(userBean.getUserSupervisour())) {
Stmt = conn.createStatement();
PreparedStatement ps2 = conn.prepareStatement("select * from emp_info where supervisour=?");
ResultSet rs2 = ps2.executeQuery();
if (rs2.next()) {
userBean.setUserID(rs2.getString("id"));
userBean.setUserName(rs2.getString("username"));
userBean.setUserGender(rs2.getString("gender"));
userBean.setUserSupervisour(rs2.getString("supervisour"));
userBean.setUserBirthDay(rs2.getString("BirthOfDate"));
userBean.setUserSalary(rs2.getString("salary"));
}
listOfUserBean.add(userBean);
request.setAttribute("userlist",listOfUserBean);
response.sendRedirect("mangerpage.jsp");
} else {
request.setAttribute("userlist",listOfUserBean);
request.setAttribute("name", name);
response.sendRedirect("mypage.jsp");
}
if (userBean.getUserID().equals("")) {
response.sendRedirect("flogin.jsp");
}
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
} catch (SQLException sqle) {
sqle.printStackTrace();
} finally {
out.close();
}
}
您必须已将 servlet 映射到操作login
。
我认为您没有正确重定向到您的 JSP。
response.sendRedirect("mangerpage.jsp");
,您应该给出绝对路径或正确的相对路径。
对于相对路径,需要查看您的目录结构以进行注释。
看看这个。
由于您在设置属性之前重定向到页面,因此显示为空白可能是因为列表为空。
只需在重定向到managerpage.jsp
之前设置userlist
属性
request.setAttribute("userlist", listOfUserBean);
response.sendRedirect("mangerpage.jsp");
您可以在页面上检查用户列表是否为空。