`
runfeel
  • 浏览: 935689 次
文章分类
社区版块
存档分类
最新评论

ajax学习篇9

 
阅读更多

ajax工作原理:

下面这段是来自一个网友的blog: 

Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对XMLHttpRequest有所了解。

 XMLHttpRequestajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。

 所以我们先从XMLHttpRequest讲起,来看看它的工作原理。

 首先,我们先来看看XMLHttpRequest这个对象的属性。

  它的属性有:

  onreadystatechange每次状态改变所触发事件的事件处理程序。

  responseText从服务器进程返回数据的字符串形式。

  responseXML 从服务器进程返回的DOM兼容的文档数据对象。

  status从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)

  status Text伴随状态码的字符串信息

  readyState对象状态值

    0 (未初始化)对象已建立,但是尚未初始化(尚未调用open方法)

    1 (初始化)对象已建立,尚未调用send方法

    2 (发送数据) send方法已调用,但是当前的状态及http头未知

    3 (数据传送中)已接收部分数据,因为响应及http头不全,这时通过responseBodyresponseText获取部分数据会出现错误,

    4 (完成)数据接收完毕,此时可以通过通过responseXmlresponseText获取完整的回应数据

看了上面的一段话我们知道了,ajax的原理。

所以对于ajax开发步骤应该是:

1. 创建对象

2. 打开服务器

3. 发送数据

4. 接受服务器的数据相应。

下面做一个简单例子用get方式的实现和servlet的一个交互:这个是一个index.jsp

<%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>

<scripttype="text/javascript"src="js/fish.js"></script>

</head>

<body>

<inputid="mybutton"type="button"value="加载数据"/>

</body>

</html>

第二个是fish.js

window.onload = function() {

function createXMLHttpRequest() {

var xmlhttp=null;//请求对象

try {//IE浏览器中创建此对象

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {//IE浏览器中创建此对象

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {

try {

// Firefox, Chrome, Opera, Safari浏览器中创建此对象

xmlhttp = new XMLHttpRequest();

if (xmlhttp.overrideMimeType) {

xmlhttp.overrideMimeType("text/xml");

}

} catch (e) { alert("浏览器不支持xmlHttpRequest!");}

}

}

return xmlhttp;

}

document.getElementById("mybutton").onclick =function() {

//得到xmlhttprequest对象

var xmlreq=createXMLHttpRequest();

xmlreq.onreadystatechange=function(){//每次状态改变都会调用这个函数

alert(xmlreq.readyState);

alert(xmlreq.status);//如果返回200就说明请求成功了。

}

//打开与服务器的连接

xmlreq.open("get","servlet/MyServlet",true);//在第二个参数后可以跟着一些数据的。

//发送数据

xmlreq.send(null);//如果是get方式那么必须是null

}

}

3servlet代码

package com.fish;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

publicclassMyServlet extends HttpServlet {

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

PrintWriter out = response.getWriter();

System.out.println("**************");

// String a= request.getParameter("fish");

// System.out.println(a);

//

}

}

5. 这个是servletxml的配置

<?xmlversion="1.0"encoding="UTF-8"?>

<web-appversion="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name></display-name>

<servlet>

<servlet-name>MyServlet</servlet-name>

<servlet-class>com.fish.MyServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>MyServlet</servlet-name>

<url-pattern>/servlet/MyServlet</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

分享到:
评论

相关推荐

    AJAX学习总结(一)--基于jQuery第一个实例

    在本篇“AJAX学习总结(一)--基于jQuery第一个实例”中,我们将探讨如何使用jQuery库实现异步JavaScript和XML(AJAX)技术。AJAX允许我们在不刷新整个页面的情况下,更新网页的部分内容,从而提供更流畅的用户体验...

    Ajax IBM官方Ajax学习文档

    IBM作为全球领先的IT企业,提供了丰富的Ajax学习资源,帮助开发者深入理解并掌握Ajax的核心原理和应用。这篇文档集是IBM官方对Ajax技术的详细解读,对于初学者来说,无疑是一份宝贵的入门资料。 Ajax的核心概念在于...

    一点学习ajax的笔记

    ### AJAX学习笔记详解 #### 一、引言 在当今快速发展的互联网技术中,异步JavaScript和XML(AJAX)已成为构建动态Web应用的关键技术之一。通过本篇笔记,我们将深入探讨AJAX的核心概念和技术要点,并针对实际开发...

    AJAX在网页中的应用论文18篇

    1. **AJAX在教学网站中的应用研究**:这篇论文可能探讨了如何利用AJAX技术改善教学网站的用户体验,例如通过异步加载课程资料、实时更新学生进度或提供交互式学习工具,提高教学效率和学生参与度。 2. **基于AJAX...

    Java相关课程系列笔记之十一Ajax学习

    在本篇Java相关课程系列笔记之十一中,我们聚焦于Ajax的学习,这是一项在Web开发中广泛使用的技术,用于创建动态、无刷新的用户界面。Ajax全称Asynchronous JavaScript and XML,即异步JavaScript和XML,它允许网页...

    jQuery中的ajax学习

    本篇文章将深入探讨jQuery中的Ajax学习,主要聚焦于如何使用jQuery进行异步数据交换,以及它如何帮助开发者创建更高效、更流畅的用户界面。 首先,jQuery的`$.ajax()`函数是实现Ajax的核心方法。它允许我们发送HTTP...

    Ajax学习资料(完整资料 12册pdf+示例 简单-深入)+示例+总结

    总之,这份Ajax学习资料包是一个完整的教学体系,从基础知识到实战技巧,再到性能优化和安全防范,覆盖了Ajax开发的方方面面。只要你按部就班地学习并实践,相信你很快就能熟练掌握Ajax技术,为你的Web应用带来更...

    16ajax学习笔记1

    在本篇16ajax学习笔记1中,我们将探讨Ajax的基础概念、使用方法以及jQuery库中的Ajax实现。 1、发送请求: Ajax的首要任务是创建XMLHttpRequest对象,这是浏览器提供的API。在JavaScript中,我们可以通过new ...

    Ajax学习 网址备忘录.txt

    ### Ajax学习网址备忘录知识点概述 #### 一、什么是Ajax? Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换来实现...

    [asp ajax dll]IT学习网20081127

    [asp ajax dll]IT学习网20081127 IT学习网 请先运行regdll.bat注册itstudyajax20081127.dll组件,然后才能正常访问页面。 注册一个用户就可以发表文章。 管理登陆页面可通过主页index.asp底部“2006”链接访问。...

    asp.net+ajax网站开发典型实例(第一篇)

    【ASP.NET与AJAX简介】 ...总之,"asp.net+ajax网站开发典型实例(第一篇)"是学习ASP.NET和AJAX结合应用的良好起点,通过实例化的学习,能有效提升开发者的技能,并为后续的Web开发工作打下坚实基础。

    经典AJAX简单入门篇(PDF+源码)

    总结,这个经典AJAX简单入门篇结合PDF教程和源码实例,将帮助你快速理解并掌握AJAX的基本用法和DOM操作,是学习Web开发中AJAX技术的宝贵资源。通过学习,你将能够构建更高效、更互动的网页应用程序。

    AJAX学习总结(四)---解决缓存问题

    在“AJAX学习总结(四)---解决缓存问题”这篇博文中,作者LC2586详细讲解了这些方法,并可能通过实例展示了如何在代码中应用它们。通过阅读和实践,你可以更深入地掌握AJAX缓存管理技巧,提升你的Web应用质量。

    ajax学习笔记资料

    本篇文章将深入探讨Ajax的核心概念、工作原理以及在实际开发中的应用。 ### 1. Ajax的核心概念 - **异步通信**:Ajax的最大特点在于其异步性,即浏览器在发送请求后不会等待服务器的响应,而是继续执行其他任务,...

    学习笔记之ASP.NET篇——ajax

    本人几年的学习摘要。对想学习ASP.NET的朋友很有帮助。 里面知识面广,内容都是我在实践中遇到的困难的解决方法,和我自己的实现片段代码。现在与大家分享。

    AJAX 学习案例二

    本篇文章将详细探讨AJAX的原理、应用及其在"自动提示信息"和"用户名检测"两个案例中的实践。** ### AJAX 原理 AJAX的核心是JavaScript对象XMLHttpRequest,它允许JavaScript向服务器发送异步HTTP请求。当用户触发...

    ajax实例23篇

    本教程包含了23个不同的Ajax实例,非常适合初学者进行学习和实践。 1. **P46_Color**: 这个实例可能涉及到使用Ajax动态改变网页元素的颜色。通过发送请求到服务器获取颜色数据,然后使用JavaScript更新元素样式,...

    Ajax完全自学手册

    1. **基础篇**:理解Ajax的基本概念,熟悉XMLHttpRequest对象的使用,学习GET和POST请求。 2. **进阶篇**:掌握异步请求的处理,了解JSON数据格式,学习错误处理和跨域问题。 3. **实战篇**:通过实际项目练习,如...

    AJAX的学习记录

    这篇学习记录主要探讨了AJAX的基本原理、使用方法以及常见应用。 **一、AJAX基础** 1. **异步通信**:AJAX的核心是XMLHttpRequest对象,它使得JavaScript能够向服务器发送异步请求,即在用户与页面交互时,后台...

Global site tag (gtag.js) - Google Analytics