这是部分客户端代码:
String queryString = "testtime=" +strArray[0] + "&clientIP=" + strArray[1]+"&wsURL="+strArray[2]+"&RTT="+strArray[3]+
"&MessageCode="+strArray[4]+"&Message="+strArray[5];
PrintWriter out= null;
BufferedReader in=null;
String line = null;
jTextArea.append("2、向服务器发送测试数据 ");
jTextArea.append("\n");
try {
URL servletURL = new URL(addressSendData);
URLConnection conn = servletURL.openConnection();
//设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
((HttpURLConnection) conn).setRequestMethod("POST");
//获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
//发送请求参数
System.out.println(queryString);
out.println(queryString);
//flush输出流的缓冲
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while((line = in.readLine())!=null)
{
jTextArea.append(line+"\n");
}
}
这是服务器servlet的部分代码:
Class.forName(Driver).newInstance();
connection=DriverManager.getConnection(URL,Username,Password);
statement = connection.createStatement();
//resultSet = statement.executeQuery(sql);
//向数据库存入数据
testtime = request.getParameter("testtime");
clientIP = request.getParameter("clientIP");
wsURL = request.getParameter("wsURL");
RTT = request.getParameter("RTT");
MessageCode = request.getParameter("MessageCode");
Message = request.getParameter("Message");
storetime = new Date().getTime();//计算存入数据库时间
System.out.println(testtime);
System.out.println(storetime);
len = statement.executeUpdate("INSERT INTO testtable VALUES ('"+testtime+"','"+clientIP+"','"+wsURL+"','"+RTT+"','"+MessageCode+"','"+Message+"','"+storetime+"')");
但是数据库里面插入的记录只有storetime有取值,其他字段都为空值,请热心人士帮忙分析一下,不胜感激!
你发起的事post请求,用getParameter,实施getAttribute,另外你传入的post参数没有storetime这个变量呀
哥们,貌似你贴出来的代码,没有传值过去也,你只拼接了,打印了,但是没有传值去后台。
你又不是form表单提交的 那么你就用setAttribute("parasName") 在servlet中用getAttribute()的方式获取呗