使用JQuery进行Ajax的请求,JQuery封装了Ajax,所以使用起来特别的方便。现在讲解一下JQuery使用ajax的方法。
运行效果:
百度云源代码下载:http://pan.baidu.com/s/1sliltO5
//验证用户名是否可以使用 functioncheckUserName(){ //获取用户名 varuserName=$("#userName").val(); //请求的url vardataUrl="Regedit"; //要提交的参数如果是对象可以:"user.userName":userName提交到action varparams={ "userName":userName }; $.ajax({ async:true,//设置为异步,如果设置为同步,必须等ajax请求完毕之后,再执行进行下面的操作 url:dataUrl,//请求的url data:params,//要传递的参数 dataType:"json",//返回的数据格式为json cache:false,//不设置缓存 type:"POST",//提交方式post //请求出错调用的方法 error:function(textStatus,errorThrown){ alert("ajax请求失败!"); },//请求之前的方法 beforeSend:function(){ //alert("请求前执行的方法!通常放一张加载的图片"); },//请求成功的方法,data为返回的数据 success:function(data,textStatus){ $("#msg").html("姓名:"+data.userName+"----年龄:"+data.age); } }); }
Servlet关键代码
/** *@MethodName:doPost *@Description:接收post请求的方法 *@paramrequest *@paramresponse *@throwsServletException *@throwsIOException *@author:徐半仙儿 *@date:Apr20,201610:13:16AM */ protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ //设置返回数据的编码 response.setContentType("text/json;charset=utf-8"); //接收传递过来的数据 StringuserName=URLDecoder.decode(request.getParameter("userName"),"UTF-8"); //实例化PrintWriter,用于向前台打印数据 PrintWriterout=response.getWriter(); //模仿数据库请求,假如数据库中有个用户名为xukaiqiang if(userName.equals("xukaiqiang")){ //以json形式返回数据到前台 Useruser=newUser(1,"xukaiqiang1234",25); Utils.printInfo(user,response); }else{ //以json形式返回数据到前台 Useruser1=newUser(1,"xukaiqiang",22); Utils.printInfo(user1,response); } //关闭流 out.close(); }
工具类Utils关键代码
publicstaticStringprintInfo(Objectobject,HttpServletResponseresponse){ //如果是Struts2这里可以使用ServletActionContext.getResponse();获取HttpServletResponse对象 Gsongson=newGson(); Stringresult=gson.toJson(object); response.setContentType("text/json;charset=utf-8"); response.setHeader("Cache-Control","no-cache");//取消浏览器缓存 PrintWriterout=null; try{ out=response.getWriter(); }catch(IOExceptione){ e.printStackTrace(); } out.print(result); out.flush(); out.close(); returnnull; }