1

こんにちは、netbeans のサーブレットにこのコードがあり、有効なユーザーまたは無効なユーザーとしてログインすると、この url が保持されるという問題がありますlocalhost:8080/LogIN123/login。ログインはサーブレットで、次のページに応答しません。

誰でも私を助けることができますか?

プログラムはユーザー名とパスワードを入力する必要があります。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();
        }
    }
4

2 に答える 2

0

サーブレットを action にマップしておく必要がありますlogin

JSP に適切にリダイレクトしていないと思います。

response.sendRedirect("mangerpage.jsp");絶対パスまたは適切な相対パスを指定する必要があります。

相対パスについては、コメントのためにディレクトリ構造を確認する必要があります。

これを見てください。

于 2012-11-05T11:21:11.883 に答える
0

属性を設定する前にページにリダイレクトしているため、おそらくリストがnullであるため、空白が表示されています。

にリダイレクトする前userlistに属性を設定するだけですmanagerpage.jsp

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

ユーザーリストが null かどうかをページで確認できます。

于 2012-11-05T13:29:41.367 に答える