0

基本的に、挿入メソッドを持つデータベースに接続された Web サービスがあります。JSP で登録フォームを作成しました。ユーザーが registration.jsp フォームに挿入したデータを Web サービスに送信する必要があります。そのため、送信ボタンをクリックしたときの registration.jsp へのアクションとして、Web サービス クライアント呼び出しを使用しました。

ユーザーがフォームに入力したデータを取得し、それを Web サービス データベースに挿入する Web クライアントに渡す方法がわかりません。

ここに私のコードがあります:

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title> Registration</title>
    </head>
    <body>
        <h1> Welcome</h1>


        <form name="test" action="Wclient2.jsp" method="POST" enctype="multipart/formdata">

                   <table border="0">
                <thead>
                    <tr>
                        <th>Register Here</th>
                      <th></th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>First Name:</td>
                        <td><input type="text" name="fname" value="" size="50" /></td>
                    </tr>
                    <tr>
                        <td>Last Name:</td>
                        <td><input type="text" name="lname" value="" size="50" /></td>
                    </tr>
                    <tr>
                        <td>Email:</td>
                        <td><input type="text" name="email" value="" size="50" /></td>
                    </tr>
                    <tr>
                        <td>Password:</td>
                        <td><input type="password" name="password" value="" size="50"/>      </td>
                    </tr>

                    <tr>
                        <td></td>
                        <td> <input type="submit" value="submit" name="submit" /> </td>
                    </tr>
                </tbody>
            </table>

        </form>
    </body>
</html>

これは、Web クライアントの送信ボタンをクリックしたときのコードです。

registration( action="Wclient2.jsp" method="POST")

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title> Enroll</title>
    </head>
    <body>
        <h1> Welcome</h1>

        <form name="test"<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

           <%-- start web service invocation --%><hr/>
        <%        

            try {
                mypack.Bioweb_Service service = new mypack.Bioweb_Service();
                mypack.Bioweb port = service.getBiowebPort();
                // TODO initialize WS operation arguments here

                java.lang.String fname = "";
                java.lang.String lname = "";
                java.lang.String email = "";
                java.lang.String password = "";

                // TODO process result here

                java.lang.String result = port.insert(fname, lname, email, password);
                out.println("Result = " + result);

            } catch (Exception ex) {
                // TODO handle custom exceptions here
            }
        %>
        <%-- end web service invocation --%><hr/>

    </body>
</html>

registration.jsp から fname のパラメーターを取得して Web クライアントに入れる方法がわかりません。私が書くとき:

java.lang.String fname = request.getParameter("fname");

テキストフィールド fname の値を Web サービスに取得するために、データベースで行が作成されますが、ユーザーがフォームに入力した値の代わりに NULL が挿入されます。

助けてください。

4

2 に答える 2

1

FirstName に入力を提供する限り、request.getParameter("fname") を使用する場合、クライアント側のコード (html/jsp) に問題はありません。問題を切り分けるには、jsp の fname の値を出力します。

String fname =request.getParameter("fname") ;
System.out.println("Value of first name " +fname) // this will print your console
java.lang.String result = port.insert(fname, lname, email, password);

これにより入力が正しく出力される場合は、サービスの実装を確認して、入力を正しく読み取って処理することを確認する必要があります。fname が null の場合、HTML/JSP に戻って再確認できます。

更新: リクエストを詳細に表示するには、以下のコードを使用できます

Enumeration reqParams= request.getParameterNames();
while (reqParams.hasMoreElements()) {
    String key= (String) reqParams.nextElement();
    String val = request.getParameter(element);
    System.out.println(" Key ==> "+key+" , Value ==> "+val);

}

これを試して、HTML フォームに入力した入力値が得られるかどうかを確認してください。

サシーシュ

于 2012-10-10T06:00:08.460 に答える
0

これは私の専門分野ではありませんが、action="Wclient2.jsp" を呼び出す代わりに、action="pass.php" を呼び出して、php ファイルを作成して変数を取得し、Wclient2.jsp にリダイレクトして変数を渡します。クエリ文字列。

たとえば、pass.php ファイルでは次のようになります。

$fname = $_POST['fname'];
$lname = $_POST['lname'];

header( 'Location: http://www.yoursite.com/path/Wclient2.jsp?fname=' .fname. '&lname=' .lname );

それを達成するのは本当に奇妙な(または初心者の)方法かもしれませんが、頭のてっぺんでは、それが機能することを知っています。他の誰かがより適切な回答をしてくれることを願っていますが、誰もすぐに返信しない場合に備えて、これが少し役立つことを願っています:)

于 2012-10-10T04:41:59.573 に答える