在Java Servlet中读取从Ajax发送的JQuery数据
Reading JQuery data sent from Ajax in Java Servlet
这是我的Ajax代码:
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}]
};
$.ajax({
url : "ships",
data : myJSONObject,
success : function(data){
GLOBAL.player.startShooting(data);
},
error : function(data) {
console.log("error:", data);
},
dataType : "json",
timeout : 30000,
type : "post"
});
这是我的Java Servlet代码:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("im in PSOT");
System.out.println(request.getParameter("myJSONObject"));
StringBuilder sb = new StringBuilder();
BufferedReader br = request.getReader();
String str;
while( (str = br.readLine()) != null ){
sb.append(str);
}
System.out.println(sb.toString());
response.setContentType("application/json");
response.getWriter().write("{'"key'":'"hello'",'"key2'":'"world'"}");
}
Java servlet返回我的Hello World对象,但我无法读取Java servlet中的数据控制台打印出以下内容:
im in PSOT
null
最后一行是上次println中的空字符串。
我正在使用Tomcat 7
有人能告诉我我做错了什么吗?为什么我不能在Java Servlet _ 中读取数据
参数名称不是myJSONObject
。这是JS变量的名称。参数名称是JSON对象中的所有根键。例如
String bindings = request.getParameter("bindings");
// ...
您只需要手动进一步解析它。你可以使用谷歌Gson。
至于为什么Reader
没有返回任何内容,那是因为请求体只能被读取和解析一次。任何getParameter()
调用都会隐式地执行此操作。因此,当您在getReader()
之前调用getParameter()
时,您将无法通过Reader
读取请求正文(反过来也是如此!)。但你根本不需要它。只需将getParameter()
与正确的参数名称一起使用即可。
您只需要手动进一步解析它。你可以使用谷歌Gson。
至于为什么阅读器没有返回任何内容,那是因为请求主体只能读取和解析一次。任何getParameter()调用都会隐式执行此操作。因此,当您在getReader()之前调用getParameter()时,您将无法通过Reader读取请求正文(反过来也是如此!)。但你根本不需要它。只需将getParameter()与正确的参数名称一起使用即可。
相关文章:
- 用程序搜索JQuery数据表中的文本
- jquery数据表的自定义ko绑定
- jquery数据表在初始化时设置宽度
- 如何通过下拉值更改来更改jquery数据表的值
- 来自应用程序状态的Jquery数据表源
- 根据jquery数据属性值进行查询
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- jQuery-数据提取问题(html遍历)
- 如何在不使用TableTool的情况下从jquery数据表中获取选定的行索引
- 使用xPath从Jquery数据验证程序获取输入
- Jquery 数据表选择位于第 1 页以外的其他页上的行
- jQuery 数据表 在页面上导航时,在分页表上重置行的数据
- 如果我在页面之间移动,Jquery 数据表行事件会卡住
- 引导程序 3 折叠面板中的 Jquery 数据表响应插件
- 为什么不允许在jquery数据表服务器端处理ajax中使用成功
- 对 jQuery 数据表中的所有选定行求和
- 如何使用jquery数据比较两个前后输入值
- 使用jquery数据表,我可以't在不破坏FixedHead的情况下生成单元格colspan=3
- 扩展详细信息Jquery数据表的持久性
- jquery数据表显示/隐藏列添加了错误的选择