HttpServlet接收客户端json数据的问题

qq_18454837 2014-09-09 02:10:49
客户端通过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不知道在服务器端怎么处理
...全文
16787 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangfeiyue 2015-08-07
  • 打赏
  • 举报
回复
服务端顶你刻画吨
红袖满楼招 2014-09-09
  • 打赏
  • 举报
回复
一个读一个写,
Kenney_Qin 2014-09-09
  • 打赏
  • 举报
回复
可以用JSONArray,JSONObject(如果你没有的话就去下一个jar包)轻松解析json,对于你的程序,可以在服务器端这样解析:
JSONArray jArray = new JSONArray(str);//假设str是你在服务端接收到的json字符串
			JSONObject json_data = jArray.getJSONObject(0);
			String username=json_data.getString("userName");//userName对应你当时put时的名字
			String password=json_data.getString("passWord");//passWord对应你当时put时的名字
jeky_zhang2013 2014-09-09
  • 打赏
  • 举报
回复
看下json处理接口,用来解析收到的数据,看接口文档可以快速了解功能用法
dali_yan 2014-09-09
  • 打赏
  • 举报
回复
怎么发送的就怎么解析,只不过反过来而已。
liuh6 2014-09-09
  • 打赏
  • 举报
回复
解决问题思路! 第一:是否能接收到post数据? 第二:验证接收到的数据是否是json数据? 第三:怎么解析json数据? 进行到那一步,层层解决!·
qq_18454837 2014-09-09
  • 打赏
  • 举报
回复
引用 7 楼 heaimnmn 的回复:
[quote=引用 6 楼 qq_18454837 的回复:] [quote=引用 5 楼 heaimnmn 的回复:] 你服务器一样接收json不就可以了么
就是不会写。。。能教教吗??或者给个例子看看也得- -[/quote]和普通的java web一样如何接收json,,,[/quote] 我上面的服务器端不就是这样写的吗。。
哎,真难 2014-09-09
  • 打赏
  • 举报
回复
引用 6 楼 qq_18454837 的回复:
[quote=引用 5 楼 heaimnmn 的回复:] 你服务器一样接收json不就可以了么
就是不会写。。。能教教吗??或者给个例子看看也得- -[/quote]和普通的java web一样如何接收json,,,
qq_18454837 2014-09-09
  • 打赏
  • 举报
回复
引用 5 楼 heaimnmn 的回复:
你服务器一样接收json不就可以了么
就是不会写。。。能教教吗??或者给个例子看看也得- -
哎,真难 2014-09-09
  • 打赏
  • 举报
回复
你服务器一样接收json不就可以了么
qq_18454837 2014-09-09
  • 打赏
  • 举报
回复
引用 3 楼 liuh6 的回复:
httppost用的方法对不对
客户端肯定没写错,就看服务器端是怎么写了
liuh6 2014-09-09
  • 打赏
  • 举报
回复
httppost用的方法对不对
qq_18454837 2014-09-09
  • 打赏
  • 举报
回复
引用 1 楼 liuh6 的回复:
http://172.16.0.244:8080/abc/login?userName=333&passWord=333 这个url是get数据的url ,如果 post数据从url中是不能接收的数据的。如果用post方式,你客户端的发送数据也要相应改变
我客户端用HttpPost,没用HttpGet了,但是服务器端不知道写得对不对??
liuh6 2014-09-09
  • 打赏
  • 举报
回复
http://172.16.0.244:8080/abc/login?userName=333&passWord=333 这个url是get数据的url ,如果 post数据从url中是不能接收的数据的。如果用post方式,你客户端的发送数据也要相应改变

80,356

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧