我的 servlet 页面有一些东西



您好,我在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");

您可以在页面上检查用户列表是否为空。

最新更新