我的servlet页面有一些东西

时间:2012-11-05 11:07:46

标签: jsp java-ee

您好我在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();
        }
    }

2 个答案:

答案 0 :(得分:0)

您必须已将servlet映射到操作login

我认为您没有正确地重定向到您的JSP。

response.sendRedirect("mangerpage.jsp");你应该给出绝对路径或适当的相对路径。

对于相对路径,需要查看您的目录结构以进行评论。

查看this

答案 1 :(得分:0)

由于您在设置属性之前重定向到页面,因此显示空白可能是因为列表为空。

只需将userlist属性设置为,然后重定向到managerpage.jsp

request.setAttribute("userlist", listOfUserBean);
response.sendRedirect("mangerpage.jsp");

如果用户列表为空,您可以在页面上查看。