0

私のアプリケーションには、テキストボックス、チェックボタン、およびパスワードを含むユーザー名があります。ユーザー名をテキストボックスに入力した後、チェックボタンをクリックすると、MySQL データベースでユーザー名を検索する必要があります。利用可能な場合は、他のメッセージが表示されない場合はメッセージが表示されます。

ここに画像の説明を入力

JSPでそれを行うにはどうすればよいですか? 私は次のコードを試しました:

    <form  method="post" name="frm_addUser" action="./adduserserver.jsp"><br><br>
<table width="500px;" border="0" cellpadding="5" cellspacing="1" bgcolor="#f8f8ff" bordercolor="#333366" align="center">


<tr>
<td bordercolor="Gainsboro"><font size="4">User ID</font></td>
<td bordercolor="Gainsboro"><input name="userid" style="WIDTH: 200px"></td></tr>

<tr>
<td bordercolor="Gainsboro"><font size="4">&nbsp;</font></td>

<!--<td><input value="Check availability" onclick="" class="btn_checkavail" type="button"></td></tr>-->
</td>
<td>
<input type="submit" value="check" name="check" 
onclick="" /></td></tr>     
<tr>
<td bordercolor="Gainsboro"><font size="4">Pass Word </font></td>
<td bordercolor="Gainsboro"><input name="password" type="password" style="WIDTH: 200px"></td></tr>

<tr>
<td bordercolor="Gainsboro"><font size="4">Confirm Password </font></td>
<td bordercolor="Gainsboro"><input name="confirmpassword" type="password" style="WIDTH: 200px"></td></tr>
<tr>
<%
try{
String username=request.getParameter("username");

    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","sumith");
    st=con.createStatement();

    sqlQuery="select distinct username from usernameexist where username='"+username+"'";
    rs=st.executeQuery(sqlQuery);
int count=0;
while(rs.next())
{
count++;
}
if(count>0)
{
            out.println("<html>");
                        out.println("<head>");
            out.println("<title>MeterDetailsPage</title>");
            out.println("</head>");
            out.println("<body>");
                        out.println("<table align='center' color='red'>");
                        out.println("<tr color='red'>");
                        out.println("<td ><font size=4 color=red >username  Already Exist</font></td>");
                        out.println("</tr>");
                        out.println("</table>");
                        out.println("</body>");
                        out.println("</html>");
}

else
{

if(username!=null )

{

if(!username.equals(""))

{

            //st.executeUpdate("insert into usernameexist(username) values('"+username+"')");
            out.println("<html>");
                        out.println("<head>");
            out.println("<title>username</title>");
            out.println("</head>");
            out.println("<body>");
                        out.println("<table align='center'>");
                        out.println("<tr>");
                        out.println("<td ><font size=4  color=green><b>available </b></font></td>");
            out.println("</table>");
                        out.println("</body>");
                        out.println("</html>");
}
}
}
st.close();
con.close();
}
catch(Exception e){}
%>



</table>
</form>
</body>
</html>
4

4 に答える 4

0

あなたは以下をすべきです:

  1. jspがチェック済みフィールドを含むすべてのフィールドをサーブレットに渡していることを確認してください。すべての属性を持つフォーム投稿を行うことができます。

  2. サーブレットはすべてのパラメータを読み取る必要があり、チェックボックスがオンになっている場合は、サーブレットに適切なロジックを配置します(MySQLデータベースのクエリなど)

  3. jspが適切なメッセージを表示できるように、サーブレットから適切な応答を返します。jsp / jsにメッセージを保持し、フラグに基づいてユーザーに適切なメッセージを表示できます。

于 2012-12-06T08:48:52.077 に答える
0

次のように使用できます..ソースコードにjqueryファイルを添付します

 <script src="jquery-1.9.1.js">

知らせる

 <input type="text" name="userName" id="userName" onBlur="checkId(this.value)">
 <span id="status"></span>

 <script type="text/javascript">
        function checkId(member_id)
        {
            $.ajax({
                type: "POST",
                url: "processAjax.jsp", /* The request will be processed in this file.. */
                beforeSend: function() {
                    $("#divIdStatus").html("geting name...");
                },
                data: "member_id=" + member_id ,
                success: function(msg) {
                    $("#divIdStatus").html(msg);
                }
            });
        }

IN processAjax.js

 String member_id = (request.getParameter("member_id")).trim();
        if (member_id.equals("")) {
            out.print("! This is Required");
        } else {


            ResultSet result = // check in database if any record with this user name;

            if (result.next()) {
                out.print("! Not Available");
            } else {
                out.print("OK..");
            }
        }
于 2014-03-20T15:07:41.850 に答える
0

クエリでテーブル名を確認してください

select distinct username from usernameexist where username='"+username+"'";

テーブルがusernameexistであることを確認してください

String username=request.getParameter("username");

ここでパラメータはユーザー名ではなくユーザーIDです

だから使う

String username=request.getParameter("userid");
于 2012-12-28T03:58:30.177 に答える