基本上我有一个连接到数据库的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而不是我的用户在表单中输入的值。
请帮忙。
答案 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 );
这可能是一种非常奇怪(或新手)的方式来实现它,但只是我的头脑中我知道它的工作原理。 希望其他人会有更合适的答案,但如果没有人足够迅速回复,我希望这有点帮助:)