原生AJAX前端代码:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var account = {
"account_id":"1",
"account":"xcq",
"password":"123456",
"name":"小明",
"department":"技术部"
};
xmlhttp.open("POST","updateAccount",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //POST 必须写在open和send中间
xmlhttp.send(JSON.stringify(account));//JSON对象转成字符串
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) { //请求完成
if (xmlhttp.status == 200) { //ok
var json = JSON.parse(xmlhttp.responseText); //解析成json对象
console.log(json);
} else {
alert(xmlhttp.status);
}
}
};
后端Servlet接收代码:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import technical_management.entity.Account;
import technical_management.service.AccountService;
import technical_management.utils.MyUtil;
@WebServlet("/updateAccount")
public class UpdateAccount extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//接收前段json字符串
String jsonString = MyUtil.read(request.getReader());
Account account = objectFromjson(jsonString);
//更新用户
AccountService accountService = new AccountService();
boolean success = accountService.update(account);
//生成返回的json对象
JSONObject ob = new JSONObject();
ob.put("success", success);
//返回json对象
PrintWriter out = response.getWriter();
out.print(ob);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
/**
* json字符串转换为Account用户对象
* @param jsonString
* @return
*/
private static Account objectFromjson(String jsonString) {
JSONObject json = JSONObject.fromObject(jsonString);
Account account = new Account();
account.setAcount_id(json.getInt("account_id"));
account.setAccount(json.getString("account"));
account.setPassword(json.getString("password"));
account.setName(json.getString("name"));
account.setDepartment(json.getString("department"));
return account;
}
}