プログラミング中、あった問題 01


先週の問題を解決

先週のtry catchの部分(IDは同じ状況)を直しましたか、新しいバッグを出てしまいました。PASSWORDを変更できません。新しい方法を使いました。

本来の方法:入力したIDでDataBaseにアカウントを削除して、同じIDと新しいPASSWORDを作成します。

やった方法:条件式を変わりましたか、直接にDataBaseに特定のデータを更新した方がいいだと思います。

解決方法:DataBaseに指定したIDのPASSWORDを変更します。

JAVA

UPDATE shain_table SET pw ='" + pw + "' WHERE id = '" + id + "'

__________________________________________________________________________________________________________________________________________________

今日の作ったこと

1.ログイン画面で入力文字数制限の機能を追加しました。
(HTML)<input maxlength='8'>


2.新しいアカウントを作成すると、個人的なテーブルを作成します。そして、ログイン成功画面にテーブルの資料を現れます。全ての資料がチェックボックスを付けます。
(既定値があります。)

 

本来の方法:全ての人は同じテーブルで作成したいですか、将来、新しい属性を付けるなら、方法を変わりました。

やった方法:個人的なテーブルを作成します。

(JAVA)
    String sql = "CREATE TABLE `" + id + "` (`LIST` TEXT NULL) COLLATE='utf8mb4_0900_ai_ci' ENGINE=InnoDB";
        String defaultvalue1 = "INSERT INTO `" + id + "`(`LIST`) VALUES ('買い物');";
        String defaultvalue2 = "INSERT INTO `" + id + "`(`LIST`) VALUES ('映画');";
        String defaultvalue3 = "INSERT INTO `" + id + "`(`LIST`) VALUES ('運動');";

3.ループで資料を出力すると、チェックボックスを付けます。

問題点:HTMLに値を渡しません。

解決方法:デバッグで問題点を探して、コードの位置を変わって、最後は個別に値を渡します。

(JAVA)

            if (status.equals("成功しました") && mode.equals("verification")) {
            //Change Special Sign
            userid = userid.replaceAll("(?i)(<)", "&lt;");
            userid = userid.replaceAll("(?i)(>)", "&gt;");
            userpw = userpw.replaceAll("(?i)(<)", "&lt;");
            userpw = userpw.replaceAll("(?i)(>)", "&gt;");
            request.setAttribute("id", userid);
            request.setAttribute("pw", userpw);
            request.setAttribute("status", status);
            //Print List
            //member.jsp
            try {
                conn = ds.getConnection();

                StringBuffer sql = new StringBuffer();

                sql.append("select LIST from `" + userid + "` where LIST LIKE'%';");

                System.out.println(sql);

                pstmt = conn.prepareStatement(new String(sql));

                pstmt.execute();

                rset = pstmt.executeQuery();

                request.setAttribute("print", rset);

                (request.getRequestDispatcher("/member.jsp").forwardequest, response);

                rset.close();
                pstmt.close();
                conn.close();

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {

                    conn.close();
                } catch (Exception e) {
                }
            }
            
            request.getRequestDispatcher("/member.jsp").forward(request, response);
        } else {

            request.setAttribute("status", status);
            request.setAttribute("message", message);
            request.getRequestDispatcher("/result.jsp").forward(request, response);
        }
    }

(HTML)
    <form action="Edit" method="post">
        <p>
            <%
                while (rset.next()) {
            %>
            <input type="checkbox" name="riyu" value="1">
            <%=rset.getString(1)%><br> <br>
            <%
                }
            %>
        </p>
        <p>
            <input type="button" onclick="location.href='addlist.jsp'"
                value="新規登録">
        </p>

4.新しい追加画面作りました。追加機能はまだ完成しません。






 

 

 

 

 

 

 


先週の問題

先週のtry catchの部分(IDは同じ状況)を直しましたか、新しいバグが出てしまいました。PASSWORDを変更できません。新しい方法を使いました。

以前の方法:入力したIDでDataBaseのアカウントを削除して、同じIDと新しいPASSWORDで作成します。 (delete => insert)

やった方法:条件式を変わりましたか、直接にDataBaseに特定のデータを更新した方がいいだと思います。

解決方法:DataBaseに指定したIDのPASSWORDを変更します。

JAVA

UPDATE shain_table SET pw ='" + pw + "' WHERE id = '" + id + "'

__________________________________________________________________________________________________________________________________________________

今日の作ったこと

1.ログイン画面で入力文字数制限の機能を追加しました。
(HTML)<input maxlength='8'>


2.新しいアカウントを作成すると、個人的なテーブルを作成します。そして、ログイン成功画面にテーブルの資料を現れます。全ての資料がチェックボックスを付けます。
(既定値があります。)

 

本来の方法:全ての人は同じテーブルで作成したいですか、将来、新しい属性を付けるなら、方法を変わりました。

やった方法:個人的なテーブルを作成します。

(JAVA)
    String sql = "CREATE TABLE `" + id + "` (`LIST` TEXT NULL) COLLATE='utf8mb4_0900_ai_ci' ENGINE=InnoDB";
        String defaultvalue1 = "INSERT INTO `" + id + "`(`LIST`) VALUES ('買い物');";
        String defaultvalue2 = "INSERT INTO `" + id + "`(`LIST`) VALUES ('映画');";
        String defaultvalue3 = "INSERT INTO `" + id + "`(`LIST`) VALUES ('運動');";

3.ループで資料を出力すると、チェックボックスを付けます。

問題点:HTMLに値を渡せません。

解決方法:デバッグで問題点を探して、コードの位置を変わって、最後は個別に値を渡します。

(JAVA)

            if (status.equals("成功しました") && mode.equals("verification")) {
            //Change Special Sign
            userid = userid.replaceAll("(?i)(<)", "&lt;");
            userid = userid.replaceAll("(?i)(>)", "&gt;");
            userpw = userpw.replaceAll("(?i)(<)", "&lt;");
            userpw = userpw.replaceAll("(?i)(>)", "&gt;");
            request.setAttribute("id", userid);
            request.setAttribute("pw", userpw);
            request.setAttribute("status", status);
            //Print List
            //member.jsp
            try {
                conn = ds.getConnection();

                StringBuffer sql = new StringBuffer();

                sql.append("select LIST from `" + userid + "` where LIST LIKE'%';");

                System.out.println(sql);

                pstmt = conn.prepareStatement(new String(sql));

                pstmt.execute();

                rset = pstmt.executeQuery();

                request.setAttribute("print", rset);

                (request.getRequestDispatcher("/member.jsp").forwardequest, response);

                rset.close();
                pstmt.close();
                conn.close();

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {

                    conn.close();
                } catch (Exception e) {
                }
            }
            
            request.getRequestDispatcher("/member.jsp").forward(request, response);
        } else {

            request.setAttribute("status", status);
            request.setAttribute("message", message);
            request.getRequestDispatcher("/result.jsp").forward(request, response);
        }
    }

(HTML)
    <form action="Edit" method="post">
        <p>
            <%
                while (rset.next()) {
            %>
            <input type="checkbox" name="riyu" value="1">
            <%=rset.getString(1)%><br> <br>
            <%
                }
            %>
        </p>
        <p>
            <input type="button" onclick="location.href='addlist.jsp'"
                value="新規登録">
        </p>

4.新しい追加画面作りました。追加機能はまだ完成しません。