1、返回json字符串:
/** 将一个字符串输出到浏览器 */
protected void writeJson(String json) {
PrintWriter pw = null;
try {
servletResponse.setContentType(\"text/plain;charset=UTF-8\");
pw = servletResponse.getWriter();
pw.write(json);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (pw != null) {
pw.close();
}
}
}
2、通过eval将返回的json字符串转换成json对象:
$.ajax({
data:{
\"shipmmsi\":shipmmsi,
\"shipname\":shipname
},
url : \"shipbk/findShipMMSIAndName.do\",
async : true,
type : \"POST\",
success : function(data) {
var ships = eval(\'(\' + data + \')\');
$(\"#bindShipmmsiDiv table tbody\").html(\"\");
if(ships!=null){
if(ships.length){
$(\"#bindShipmmsiDiv\").show();
var trs=\"\";
for(var i=0;i<ships.length;i++){
trs+=\"<tr><td>\"+ships[i].mmsi+\"</td><td>\"+ships[i].vesselName+\"</td></tr>\";
}
$(\"#bindShipmmsiDiv table tbody\").append(trs);
//给tr注册点击事件
$(\"#bindShipmmsiDiv table tbody tr\").click(function(){
$(this).addClass(\'select_tr\').siblings().removeClass(\'select_tr\');
});
$(\"#bindShipmmsiDiv table tbody tr\").dblclick(function(){
fillShipMMSIAndName(this);
$(\"#bindShipmmsiDiv\").hide();
});
}
}
}
});
3、通过jquery的 $(\"form\").serialize() 可以将form表单的数据序列化后提交到后台,因此通过ajax可以操作form表单并处理返回的数据。
$.ajax({
url : \'deliveryWarrant/update.do\',
data : $(\'#myform\').serialize(),
type : \"POST\",
success : function(data) {
var res = eval(\'(\' + data + \')\');
if (res && res.success == true) {
alert(res.message);
location.href=\"/godownWarrant/findToDeliveryWarrant.do?godownWarrant.code=\"+$(\"#myform input[name=godownWarrant\\\\.code]\").val();
} else {
alert(res.message);
}
}
});
4、防止乱码的处理方法:
jsp页面:charset:utf-8
servlet:utf-8
filter:utf-8
在PrintWriter out = response.getWriter()之前加一句
response.setCharacterEncoding(\"UTF-8\")就可以解决乱码的问题。
但是得记住一定要放在声明PrintWwrite之前。
总之,前台界面,java文件,数据库和数据库的连接都有采用统一编码,才不会出现乱码等情况