AJax技术

学习javaweb时的Ajax笔记(2)

字号+ 作者:H5之家 来源:H5之家 2016-08-18 11:00 我要评论( )

创建XMLHttpRequest对象 调用open()方法打开与服务器的连接 调用send()方法发送请求 为XMLHttpRequest对象指定onreadystatechange事件函数,这个函数会在XMLHttpRequest的1、2、3、4,四种状态时被调用 XMLHttpRequ

创建XMLHttpRequest对象
调用open()方法打开与服务器的连接
调用send()方法发送请求
为XMLHttpRequest对象指定onreadystatechange事件函数,这个函数会在XMLHttpRequest的1、2、3、4,四种状态时被调用
XMLHttpRequest对象的status属性表示服务器状态码,它只有在readyState为4时才能获取到
XMLHttpRequest对象的responseText属性表示服务器响应内容,它只有在readyState为4时才能获取到!

2.AJAX第二例(发送POST请求)

POST请求必须设置ContentType请求头的值为application/x-。表单的enctype默认值就是为application/x-!因为默认值就是这个,所以大家可能会忽略这个值!当设置了<form>的enctype=” application/x-”时,等同与设置了Cotnent-Type请求头。
但在使用AJAX发送请求时,就没有默认值了,这需要我们自己来设置请求头

xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

当没有设置Content-Type请求头为application/x-www-form-urlencoded时,Web容器会忽略请求体的内容。所以,在使用AJAX发送POST请求时,需要设置这一请求头,然后使用send()方法来设置请求体内容。

3.AJAX第三例(用户名时候已被注册) 3.1功能介绍

在注册表单中,当用户填写了用户名后,把光标移开后,会自动向服务器发送异步请求。服务器返回true或false,返回true表示这个用户名已经被注册过,返回false表示没有注册过。
客户端得到服务器返回的结果后,确定是否在用户名文本框后显示“用户名已被注册”的错误信息!

3.2案例分析

regist.jsp页面中给出注册表单;
在username表单字段中添加onblur事件,调用send()方法;
send()方法获取username表单字段的内容,向服务器发送异步请求,参数为username;
RegistServlet:获取username参数,判断是否为“itcast”,如果是响应true,否则响应false;

3.3代码

regist.jsp

<script type="text/javascript"> function createXMLHttpRequest() { try { return new XMLHttpRequest(); } catch (e) { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { return new ActiveXObject("Microsoft.XMLHTTP"); } } } function send() { var xmlHttp = createXMLHttpRequest(); xmlHttp.onreadystatechange = function() { if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { if(xmlHttp.responseText == "true") { document.getElementById("error").innerHTML = "用户名已被注册!"; } else { document.getElementById("error").innerHTML = ""; } } }; xmlHttp.open("POST", "/RegistServlet", true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); var username = document.getElementById("username").value; xmlHttp.send("username=" + username); } </script> <h1>注册</h1> <form action="" method="post"> 用户名:<input type="text" onblur="send()" /><span></span><br /> 密 码:<input type="text" /><br /> <input type="submit" value="注册" /> </form>

RegistServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); String username = request.getParameter("username"); if("itcast".equals(username)) { response.getWriter().print(true); } else { response.getWriter().print(false); } } JSON 1.什么是JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
JSON是用字符串来表示JavaScript对象,例如可以在Servlet中发送一个JSON格式的字符串给客户端JavaScript,JavaScript可以执行这个字符串,得到一个JavaScript对象

2.JSON对象语法

JSON语法:
数据在名称/值对中
数据有逗号分隔
花括号保存对象
方括号保存数组

var person = {"name":"zhangSan","age":"18","sex":"male"}; alert(person.name+","+person.age+","+person.sex);

注意:key也要在双引号中

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery 学习技巧总结,一、简介1.1、概述随着WEB2.0及ajax思想在

    JQuery 学习技巧总结,一、简介1.1、概述随着WEB2.0及ajax思想在

    2016-08-13 16:00

  • 在线知识学习平台

    在线知识学习平台

    2016-08-13 15:00

  • 健壮的AJAX源码学习应用示例

    健壮的AJAX源码学习应用示例

    2016-08-10 16:00

  • 准备学习 C, 想知道 HTML, CSS, JS, Ajax, JAVA, C 是做什么的?

    准备学习 C, 想知道 HTML, CSS, JS, Ajax, JAVA, C 是做什么的?

    2016-08-10 15:00

网友点评