Ajax学习第五节_ajaxJquery

使用JQuery进行Ajax的请求,JQuery封装了Ajax,所以使用起来特别的方便。现在讲解一下JQuery使用ajax的方法。

运行效果:

    

百度云源代码下载http://pan.baidu.com/s/1sliltO5


Jsp页面关键代码

	//验证用户名是否可以使用
	function checkUserName() {
		//获取用户名
		var userName = $("#userName").val();
		//请求的url
		var dataUrl = "Regedit";
		//要提交的参数如果是对象可以:"user.userName":userName提交到action
		var params = {
			"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请求的方法
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 * @author:徐半仙儿
	 * @date:Apr 20, 201610:13:16 AM
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 设置返回数据的编码
		response.setContentType("text/json;charset=utf-8");
		// 接收传递过来的数据
		String userName = URLDecoder.decode(request.getParameter("userName"), "UTF-8");
		// 实例化PrintWriter,用于向前台打印数据
		PrintWriter out = response.getWriter();
		// 模仿数据库请求,假如数据库中有个用户名为xukaiqiang
		if (userName.equals("xukaiqiang")) {
			// 以json形式返回数据到前台
			User user = new User(1, "xukaiqiang1234", 25);
			Utils.printInfo(user, response);
		} else {
			// 以json形式返回数据到前台
			User user1 = new User(1, "xukaiqiang", 22);
			Utils.printInfo(user1, response);
		}
		// 关闭流
		out.close();
	}

工具类Utils关键代码

public static String printInfo(Object object, HttpServletResponse response) {
		//如果是Struts2这里可以使用ServletActionContext.getResponse();获取HttpServletResponse对象
		Gson gson = new Gson();
		String result = gson.toJson(object);
		response.setContentType("text/json; charset=utf-8");
		response.setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存
		PrintWriter out = null;
		try {
			out = response.getWriter();
		} catch (IOException e) {
			e.printStackTrace();
		}
		out.print(result);
		out.flush();
		out.close();
		return null;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Muxiyale

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值