HttpServlet接收客户端json数据的问题
客户端通过HttpPost提交的json数据 在服务器上要怎么解析??代码如下:
服务器:
public class testGET implements ServletRequestAware,ServletResponseAware {
HttpServletRequest request;
HttpServletResponse response;
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request = request;
}
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response = response;
}
public void login(){
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
String username = request.getParameter("userName");
String password = request.getParameter("passWord");
System.out.print("userName=" + username);
System.out.println("passWord=" + password);
try {
getConn getconn = new getConn();
Statement st = getconn.getConnection().createStatement();
String sql = "insert into aaa values (333 , 333)";
int b = st.executeUpdate(sql);
if(b>0){
System.out.println("执行条数为:"+ b);
//json();
}else{
System.out.print("失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
客户端:
public class webPOST extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
Button bt = (Button) findViewById(R.id.web1);
bt.setOnClickListener(new MyOnClickListener());
}
class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
JSONObject json = new JSONObject();
json.put("userName", "lzw");
json.put("passWord", "love");
String sjson = json.toString();
Log.v("sjson", sjson);
HttpClient httpClient = new DefaultHttpClient();
String url = "http://172.16.0.244:8080/abc/login";
HttpPost httpPost = new HttpPost(url);
//设置httpPost为json、utf-8格式
httpPost.addHeader("Content-Type", "application/json;charset=utf-8");
//封装json
StringEntity se = new StringEntity(sjson, "UTF-8");
httpPost.setEntity(se);
HttpResponse httpResponse = httpClient.execute(httpPost);
int code = httpResponse.getStatusLine().getStatusCode();
if(code == 200){
Log.v("连接结果", "连接成功");
}else{
Log.v("连接结果", "连接失败");
System.out.println(code);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
Thread th = new Thread(runnable);
th.start();
}
}
}
如果客户端用HttpGet传输数据的话可以接收到,如:http://172.16.0.244:8080/abc/login?userName=333&passWord=333
用HttpPost不知道在服务器端怎么处理