将表单数据从jsp发送到Web服务客户端(SOAP)

时间:2012-10-10 04:12:18

标签: java jsp soap netbeans-7 webservice-client

基本上我有一个连接到数据库的Web服务,它有一个insert方法。 我在jsp中创建了一个注册表单,我需要将用户在registration.jsp表单中插入的数据发送到我的Web服务。因此,我在单击提交按钮时使用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客户端的代码
  

注册(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”);

将textfield fname的值输入到我的Web服务中,在我的数据库中创建了一行,但是插入了NULL而不是我的用户在表单中输入的值。

请帮忙。

2 个答案:

答案 0 :(得分:1)

如果您使用request.getParameter(“fname”),只要您向FirstName提供输入,我就不会发现您的客户端代码(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表单中获得了你输入的任何输入的值。

Satheesh

答案 1 :(得分: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 );

这可能是一种非常奇怪(或新手)的方式来实现它,但只是我的头脑中我知道它的工作原理。 希望其他人会有更合适的答案,但如果没有人足够迅速回复,我希望这有点帮助:)