案例一:取得服务端当前时间

  简单形式:jQuery对象.load(url),返回结果自动添加到jQuery对象代表的标签中间

<body>
当前时间:
<span id="time"></span><br />
<input type="button" value="获取时间" />
<script type="text/javascript">
    $(":button").click(function() {
      var url = "${pageContext.request.contextPath}/servlet/TimeServlet?time="+ new Date().getTime();
      $("#time").load(url);
    });
</script>
</body>
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(new Date());
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();
}

  复杂形式:jQuery对象.load(url,sendData,function(backData,textStatus,ajax){... ...})

<body>
当前时间:
<span id="time"></span><br />
<input type="button" value="获取时间" />
<script type="text/javascript">
$(":button").click(function() {
        //参数一:发送的路径
        var url = "${pageContext.request.contextPath}/servlet/TimeServlet?time="+ new Date().getTime();
//参数二:sendData发送请求体中的数据,以JSON文本书写的发送的参数
var sendDate = {
"name" : "哈哈",
"sal" : 6000
};
//参数三:回调函数,类似于传统方式ajax.onreadystatechange = 处理函数
$("#time").load(url,sendDate,function(backData,textStatus,xmlHttpRequest){
//回调函数中参数一:backData表示返回的数据,它是js对象
//回调函数中参数二:textStatus表示返回状态的文本描述,例如:success,error,
//回调函数中参数三:xmlHttpRequest表示ajax中的核心对象
alert("backData=" + backData);//输出:backData=2017-01-15 20:26:50
alert("textStatus=" + textStatus);//输出:textStatus=success
alert("xmlHttpRequest=" + xmlHttpRequest.readyState);//输出:xmlHttpRequest=4
alert("xmlHttpRequest=" + xmlHttpRequest.status);//输出:xmlHttpRequest=200
alert("xmlHttpRequest=" + xmlHttpRequest.responseText);//它是一个字符串,输出:xmlHttpRequest=2017-01-15 20:26:50
//项目中只需要使用backDate即可
});
    });
</script>
</body>
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
System.out.println("POST");
String name = request.getParameter("name");
String sal = request.getParameter("sal");
System.out.println(name+":"+sal);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(new Date());
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();
}

  注意:对于load方法而言,如果请求体无参数发送的话,load方法采用GET方式提交,如果请求体有参数发送的话,load方法采用POST方式提交,使用load方法时,自动进行编码,无需手工编码

案例二:检查注册用户名和密码是否存在

<body>
<!-- 在异步提交的方式下,form标签的action和method属性没有意义-->
<form action="01_time.jsp" method="GET">
<table border="2" align="center">
<tr>
<th>用户名</th>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<th>密码</th>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="检查" style="width:111px" /></td>
</tr>
</table>
</form>
<span></span>
<script type="text/javascript">
$(":button").click(function() {
var username = $(":text").val();//哈哈
var password = $(":password").val();//123
var url = "${pageContext.request.contextPath}/servlet/UserServlet?time="+ new Date().getTime();
//手工写JSON文本
/* var sendData = {
"username" : username,
"password" : password
}; */
var sendData = $("form").serialize();//这行相当于上面三行
$.post(url,sendData,function(backDate) {
//backDate:
//如果服务器返回html,即backDate就是string,不要解析
//如果服务器返回json,即backDate就是object,要解析
//如果服务器返回xml,即backDate就是object,要解析
var $img = $("<img src='"+backDate+"' width='14px' height='14px'>");
$("span").text("");
$("span").append($img);
});
});
</script>
</body>

 

public class UserServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");//哈哈
String password = request.getParameter("password");//
String tip = "images/MsgSent.gif";
if("哈哈".equals(username) && "123".equals(password)){
tip = "images/MsgError.gif";
}
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.write(tip);
pw.flush();
pw.close();
}
}

  $.get(url,sendData,function(backData,textStatus,ajax){... ...})

  $.post(url,sendData,function(backData,textStatus,ajax){... ...})(提倡)

  注意:使用get或post方法时,自动进行编码,无需手工编码

  jQuery对象.serialize() :自动生成JSON格式的文本,要为每个jQuery对象设置一个name属性,因为name属性会被认为请求参数名,必须用<form>标签元素,如果属性过多,强烈推荐采用这个API 

案例三:jQuery解析XML

<?xml version="1.0" encoding="UTF-8"?>
<root>
<city>广州</city>
<city>深圳</city>
<city>香港</city>
<city>澳门</city>
<city>台湾</city>
<city>中山</city>
</root>
<body>
<input type="button" value="解析服务器响应的xml文件" />
<script type="text/javascript">
$(":button").click(function()
                {
  var url = "${pageContext.request.contextPath}/03_city.xml?time="+ new Date().getTime();
  var sendData = null;
  $.get(url, sendData, function(xml) {
  //用jquery中的api解析xml文件,这时的xml是js对象
  var $xml = $(xml).find("city");
  //迭代
  $xml.each(function() {
  var city = $(this).text();
  alert(city);
  });
  });
  });
</script>
</body>

 案例四:基于jQuery的AJAX二级联动

<body>
<select id="province">
<option>选择省份</option>
<option>江苏</option>
<option>浙江</option>
</select>
<select id="city">
<option>选择城市</option>
</select>
<!-- 省份->城市 -->
<script type="text/javascript">
//定位省份下拉框,同时添时内容改变事件
$("#province").change(
function() {
//清空原城市下拉框中的内容,除第一项外
$("#city option:gt(0)").remove();
//获取选中的省份
var province = $("#province option:selected").text();
//如果选中的不是"选择省份"
if ("选择省份" != province) {
$.ajax({
type : "POST",
url : "${pageContext.request.contextPath}/findCityByProvinceRequest?time="+ new Date().getTime(),
data : {
"province" : province
},
success : function(backDate,textStatus, ajax) {
//解析json文本
var array = backDate.setCity;
var size = array.length;
for (var i = 0; i < size; i++) {
var city = array[i];
var $option = $("<option>"+ city+ "</option>");
$("#city").append($option);
}
}
});
}
});
</script>
</body>
public class ProvinceCityAction extends ActionSupport{
private String province;
public void setProvince(String province) {
this.province = province;
}
public String findCityByProvince() throws Exception {
setCity = new LinkedHashSet<String>();
if("江苏".equals(province)){
setCity.add("南京");
setCity.add("扬州");
}else if("浙江".equals(province)){
setCity.add("杭州");
setCity.add("宁波");
setCity.add("温州");
}
return SUCCESS;
}
private Set<String> setCity;
public Set<String> getSetCity() {
return setCity;
}
}

Jquery的AJAX应用详解的更多相关文章

  1. 触碰jQuery:AJAX异步详解

    触碰jQuery:AJAX异步详解 传送门:异步编程系列目录…… 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML( ...

  2. jQuery调用AJAX异步详解[转]

    AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1)   使用CSS和X ...

  3. 触碰jQuery:AJAX异步详解(转)

    AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1)   使用CSS和X ...

  4. jQuery中 $.ajax()方法详解

    $.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Strin ...

  5. Jquery使用ajax参数详解

    记录一下  Jquery使用ajax(post.get及参数详解) 1.get: $.ajax({ type: "GET", url: baseUrl + "Showco ...

  6. jquery datatable ajax配置详解

    我写的这个东西类似于个人笔记,如果你想要完整的而了解 可以去这里看看 http://dt.thxopen.com/ 包括英文原网站都不错. 通过配置ajax的属性和服务器交互 $("sele ...

  7. jQuery之$.ajax()方法详解及实例

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  8. Jquery中 $.Ajax() 参数详解

    1.url:要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type:要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如pu ...

  9. jquery中的ajax方法详解

    定义和用法ajax() 方法通过 HTTP 请求加载远程数据.该方法是 jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XML ...

随机推荐

  1. 转:使用WebDriver过程中遇到的那些问题

    在做web项目的自动化端到端测试时主要使用的是Selenium WebDriver来驱动浏览器.Selenium WebDriver的优点是支持的语言多,支持的浏览器多.主流的浏览器Chrome.Fi ...

  2. git 管理多个私钥

    .ssh/config文件: host imspring hostname 182.92.153.2 IdentityFile ~/.ssh/id_rsa port 22

  3. Nginx配置proxy_pass【转载】

    在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走. 下面四种 ...

  4. Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务

    本节,直接写通过代码来学习.这些基本操作都比较简单,与这些基本操作相关的内容在之前的1至6节基本介绍完毕. l           增加: 方法1:使用AddToXXX(xxx)方法:实例代码如下: ...

  5. ztree异步加载

    Ztree异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载. 直接贴代码(SpringMvc+Mybatis): 前台页面ztreeList.jsp: ...

  6. ajax编程**

    ajax 编程 *step1获得 XmlHttpRequest 对象.该对象由浏览器提供,但是该类型并没有标准化.ie 和其它浏览器不同,其它浏览器都支持该类型,而 ie 不支持. function ...

  7. Python3基础 定义无参数无返回值函数 调用会输出hello world的函数

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  8. PhpStorm 10.0注册

    ntelliJ IDEA开源社区 提供了如下通用激活方法:注册时选择License server,填http://idea.lanyus.com/,然后点击 OK,再点一次OK,就搞定了.注意http ...

  9. Django之路: 基本命令与网址进阶

    一.Django 基本命令 温馨提示:如果你想学习Django,那么就请您从现在开始按照笔记记录一步一步的用手把代码敲出来,千万不要偷懒哦..... 1.创建一个Django project djan ...

  10. IFeatureLayer

      All Properties Methods Inherited Non-inherited Description AreaOfInterest The default area of inte ...