AJAX数据传输和响应实例
<script type="text/javascript">
function login() {
var un = $("#username").val();
var pw = $("#password").val();
$.ajax({
url:"login",//请求服务器地址,与java WebServlet地址一致
type:"post",//请求方式,get或post
data:{username:un , password:pw},//传递到服务器的c数据参数
dateType:"json", //服务器返回数据类型,自动类型转换,json
success:function(data){
$("#h3").html(""); //每次响应前清空
var datas = eval("("+data+")"); //如果返回的是字符串不是json时用,转成Json,(json对象会报错)
$("#h3").append(datas.message);
}
});
}
</script>
eval("("+data+")"),当时拿到数据一致是Object对象,视频中却是json,最后查资料才用了eval("("+data+")"),我也不知道为什么会这样,如果拿到的是json数据这步则可以不用写,不然会报错。
java页面
@WebServlet("/login")//服务器请求地址
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username == null || username.equals("")) {
//当用户名为空时返回null信息
JSONResult jsonresult=new JSONResult();
jsonresult.setMessage(StaticData.USERNAME_NULL);//封装了,意思是“用户名不能为空”
String json = JSONObject.fromObject(jsonresult).toString(); //JSONObject.fromObject--JSON与对象的转换
response.setContentType(StaticData.UTF_8);//设置响应数据编码格式
response.getWriter().print(json); //响应字符串数据
}else if(password == null || password.equals("")) {
//当密码为空时返回null信息
JSONResult jsonResult = new JSONResult();
jsonResult.setMessage(StaticData.PASSWORD_NULL);//封装了,意思是“密码不能为空”
String json = JSONObject.fromObject(jsonResult).toString();
response.setContentType(StaticData.UTF_8);
response.getWriter().print(json);
}else {
}
初学java,对个人认为的知识点的整理,方便以后记忆。
见笑了。不足之处还请多多指教,谢谢!