- 这个是通过xmlHttp传的一个json字符串
var xmlHttp; function createXMLHttpRequest() { if (window.ActiveXObject){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } function doJSON(){ alert("bigin"); var car = getCarObject(); // Use the JSON JavaScript library to stringify the Car object var carAsJSON = JSON.stringify(car); //var jsonString=car.toJSONString(); alert( " Car object as JSON:\n " + carAsJSON); var url="<%=path%>/servlet/TestJSON"; alert(url); createXMLHttpRequest(); xmlHttp.open( "post" , url, true ); xmlHttp.onreadystatechange=handleStateChange; xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlHttp.send("ttt="+carAsJSON); } function handleStateChange() { if (xmlHttp.readyState==4 ) { if (xmlHttp.status==200 ) { parseResults(); } } } function parseResults(){ var responseDiv = document.getElementById( "serverResponse" ); if (responseDiv.hasChildNodes()) { responseDiv.removeChild(responseDiv.childNodes[0]); } var responseText = document.createTextNode(xmlHttp.responseText); responseDiv.appendChild(responseText); } function getCarObject() { return new Car( " Dodge " , " Coronet R/T " , 1968 , " yellow " ); } function Car(make, model, year, color) { this .make = make; this .model = model; this .year = year; this .color = color; }
- servlet中获取
response.setContentType("text/html");
String str=readJSONStringFromRequestBody(request);
PrintWriter out=response.getWriter();
out.print("ok"+str);
out.flush();
out.close();
- readJSONStringFromRequestBody(HttpServletRequest request) 方法
private String readJSONStringFromRequestBody(HttpServletRequest request) {
StringBuffer json = new StringBuffer();
String line = null ;
try {
BufferedReader reader=request.getReader();
while ((line=reader.readLine())!=null ) {
json.append(line);
}
}
catch (Exception e) {
System.out.println( " Error reading JSON string: " + e.toString());
}
return json.toString();
}
ok了
但是在struts中就怎么也的不到json的值。只能通过另一个方面就是
String ttt=request.getParameter("ttt");
不知道有没有知道这个是为什么呢???