Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
193
rated 0 times [  194] [ 1]  / answers: 1 / hits: 21095  / 12 Years ago, thu, march 22, 2012, 12:00:00

Here is my Ajax code:



    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
});


And here is my Java Servlet code:



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});
}


The Java servlet returns my Hello World object, but i CANNOT read data in Java Servlet
The console prints out the following:



im in PSOT
null


The last line is an empty string from last println.



I am using Tomcat 7



Can anyone please tell me what i am doing wrong and why i cannot read data in Java Servlet_


More From » java

 Answers
12

The parameter name is not myJSONObject. That's the JS variable name. The parameter names are all the root keys which you have there in your JSON object. E.g.



String bindings = request.getParameter(bindings);
// ...


You'd only need to manually parse it further. You could use Google Gson for this.



As to why the Reader didn't return anything, that's because the request body can be read and parsed only once. Any getParameter() call will implicitly do that. So when you call getParameter() before getReader(), you won't be able to read the request body by the Reader (the same applies for the other way round!). But you don't need it anyway. Just use getParameter() with the proper parameter names.


[#86669] Wednesday, March 21, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
malkajillc

Total Points: 652
Total Questions: 107
Total Answers: 98

Location: Finland
Member since Sat, Nov 6, 2021
3 Years ago
malkajillc questions
;