1

Web プロジェクトを使用して、Netbeans で非常に基本的なコース登録フォームを作成している最中です。学生が登録フォームに記入することで登録できるようになりました。入力された情報は、Derby DB に保存されます。追加/ドロップするクラスを検索するために、登録された学生がログインできるようにする必要があります。

ユーザー入力を取得してDBに保存するRegServlet.javaファイルのコードは次のとおりです。

public class RegServlet extends HttpServlet {
SaveToDB toDB = new SaveToDB();

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        try {
            doStuff(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(RegServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    } catch (InstantiationException ex) {
        Logger.getLogger(RegServlet.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        Logger.getLogger(RegServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public void doStuff(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantiationException, IllegalAccessException, SQLException {
    //see if search parameter is present        
    String userName = request.getParameter("userName");
    String passWord = request.getParameter("passWord");                
    if(!userName.isEmpty()&&!passWord.isEmpty()&&!lastName.isEmpty()&&!firstName.isEmpty()&&!age.isEmpty()&& (sex=='F' || sex=='M') &&!email.isEmpty()) {
        request.setAttribute("userName", userName);
        request.setAttribute("passWord", passWord);

        toDB.createConnection();
        toDB.insertNewUser(userName, passWord, lastName, firstName, age, sex, email);
        RequestDispatcher view = request.getRequestDispatcher("login.jsp");
        view.forward(request, response);            
    } else {
        RequestDispatcher view = request.getRequestDispatcher("index.jsp");
        view.forward(request, response);
    }            
}

そして、ここに私の newUser.jsp ファイルがあります:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>New User Registration</title>
</head>
<body>
    <form method="get" action="RegServlet">
        <h1>Register!</h1>
            Fill out information below:<p>                

            Username:
            <input type="text" name="userName" value =""><p>
            Password:
            <input type="text" name="passWord" value =""><p>                

            <input type="submit" value="Finish!"><p>


                <script type="text/javascript">
                    var var1 = "<%= (String) request.getAttribute("userName")%>";
                    if(var1 == (""))
                        document.write("<bSystem doesn't like an empty string.....Try Again!!!</b>");    

                    var var2 = "<%= (String) request.getAttribute("passWord")%>";
                    if(var2 == (""))
                        document.write("<bSystem doesn't like an empty string.....Try Again!!!</b>");
                </script>


    </form>
</body>

この jsp コード部分<form method="get" action="RegServlet">は、私のコードを RegServlet.java ファイルにリンクし、RegServlet クラスで、RequestDispatcher実際にログインするために login.jsp という名前の次のページにユーザーを送っていました。

login.jsp ファイルについて助けが必要です。ここに私のlogin.jspファイルがあります:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Login Page</title>
</head>
<body>
    <form method="Login" action="RegServlet">
    <h1>Login!</h1>        
    Username:
    <input type="text" name="userName" value =""><p>
    Password:
    <input type="text" name="passWord" value =""><p>

    <input type="submit" value="Login!"><p>
</body>

DB に保存されているパスワードとユーザー名を照合するdoLogin()RegServlet.java クラス ファイルに別のメソッドという名前が付けられています。doStuff()そして、ユーザー名とパスワードが一致する場合、システムにログインしたい学生のためのセッションを開始して、DB にも保存されるクラスを検索したいと考えています。

メソッドはどうすればいいdoLogin()ですか?このメソッドはどこに実装すればよいですか? メソッドの下でdoStuff()?それとも別のクラス?また、認証プロセスを開始するにはどうすればよいですか?

すべてのセキュリティなどに対処する前に、まず基本を練習しているだけです。

4

1 に答える 1