您好我在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();
这里有一个bean的列表,它将发送到包含用户信息的其他页面
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();
}
}
答案 0 :(得分:0)
您必须已将servlet映射到操作login
。
我认为您没有正确地重定向到您的JSP。
response.sendRedirect("mangerpage.jsp");
你应该给出绝对路径或适当的相对路径。
对于相对路径,需要查看您的目录结构以进行评论。
查看this。
答案 1 :(得分:0)
由于您在设置属性之前重定向到页面,因此显示空白可能是因为列表为空。
只需将userlist
属性设置为,然后重定向到managerpage.jsp
request.setAttribute("userlist", listOfUserBean);
response.sendRedirect("mangerpage.jsp");
如果用户列表为空,您可以在页面上查看。