• Ajax 之XMLHttpRequest讲解


    一直以来都听别人说Ajax,今天终于接触到了。。。。。。。。。。

    一.什么是Ajax?

    答:

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

    AJAX = 异步 JavaScriptXML标准通用标记语言的子集)。

    AJAX 是一种用于创建快速动态网页的技术。

    通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

    二.Ajax的关键元素

    Ajax不是单一的技术,而是四种技术的集合

    • JavaScript                        JavaScript是通用的脚本语言,用来嵌入在某种应用中。Web浏览器中嵌入的JavaScript解释器允许用过程序与浏览器的很多内建功能交互。Ajax应用程序是使用JavaScript编写的。
    • CSS(层叠样式表)             CSS为Web页面元素提供了一种可重用的可视化样式的定义方法。它提供了简单而又强大的方法,以一致的方式定义和使用可视化样式。在Ajax应用中,用户界面的样式可以通过CSS独立修改。
    • DOM(文档对象模型)         DOM以一组可以使用JavaScript操作的可编程对象展现出Web页面的结构。通过使用脚本修改DOM,Ajax应用程序可以运行时改变用户界面,或者高效的重绘页面中的某个部分。
    • XMLHttpRequest对象         XMLHttpRequest对象允许Web程序员从Web服务器以后台活动的方式获取数据。数据格式通常是XML,但是也可以很好的支持任何基于文本的数据格式(XMLHttpRequest这个名字取得是在是很不恰当)。尽管XMLHttpRequest对于完成这件工作来说最为灵活和通用的工具,但还有其他方法也可以从服务器获取数据。

    三.接下来我们讲解XMLHttpRequest对象

    讲解之前先来熟悉一下它有哪些属性和方法和传统的有何差异?

    下面的图解更直观的解释:

    XMLHttpRequest一些常用属性:

    当一个XMLHttpRequest对象被创立后,readyState属性标示了当前对象处于什么状态,可以通过对该属性的访问,来判读此次请求的状态然后做出相应的操作

    1.responseText属性
    responseText属性包含客服端接收到的HTTP响应的文本内容,当readyState属性为0、1或2时,responseText属性包含一个空字符串:当readyState属性值为3时,响应中包含客服端还没完成的响应信息;当readyState属性值卫4,responseText属性才包含完整的响应信息。
    2.responseXML属性
    只有当readyState属性为4,并且响应头部的Content-Type的MIME类型被指定为XML(text/xml或者application/xml)时,该属性才会有值并且被解析成一个XML文档,否则该属性为null。如果是回传的XML文档结构不良或者未完成响应回传,该属性也会为null。responseXML属性用来描述被XMLHttpRequest解析后的XML文档的属性。
    3.status属性
    status属性描述了HTTP状态代码,注意,仅当readyState属性值为3(正在接受中)或者4(已加载)时,才能对此属性进行访问。如果在readyState属性值小于3时,试图去读取status属性值,将引发一个异常。
    4.statusText属性
    statusText属性描述了HTTP状态代码文本,并且仅当readyState属性为3或者4才可用。当readyState属性为其他值时试图存取statusText属性将引发一个异常。

    好了,接下来就切入真实例子当中吧!

    (1)  index.jsp页面

      

    (2) 

         用户名:

     

    (3)AjaxServlet书写

       public AjaxServlet extends HttpServlet{

            public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException

            {

                   doPost(request,response);

             }

           public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException

            {

                  String uname=request.getParamter("name");

                  if(admin.equals(uname)){

                       //把消息回送给页面

                      response.getWriter().write("已经注册");

                  }else{

                       response.getWriter().write("可以注册");

                   }

             

             }

      }

    (4)web.xml

       

               AjaxServlet

               cn.servlet.AjaxServlet

       

       

               AjaxServlet

               /ajaxServlet

       

  • 相关阅读:
    340页11万字智慧政务大数据资源平台大数据底座数据治理建设方案
    Ae 效果:CC Star Burst
    为什么写作
    Java经典300例-基础篇-001:Hello Kitty
    (四)CSS前端开发面试会问到的问题有哪些?
    Redis集群数据迁移:redis-rdb-tools离线安装以及使用
    9.1.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-道路分割分析
    开源跨平台视频编辑器 Shotcut 22.06.23 下载安装
    JAVA计算机毕业设计电影网站系统设计Mybatis+系统+数据库+调试部署
    学习Android的第十九天
  • 原文地址:https://blog.csdn.net/omygodvv/article/details/134469758