AJAX基础.

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
— 高级软件人才实作培训专家 ! 北京传智播客教育 ajax 讲师:韩顺平 qq:
1 网站设计理念 大连理工大学创新实验学院 优秀网站展示 - LAMP 类网站
单元二:面向对象程序设计 任务二:借书卡程序设计.
第六章 网页设计与制作基础.
基于SSH的web开发 AND 企业级WEB应用开发新技术
姓名: 钱琬婷 学号: 0501W238 专业: 计算机科学与技术 指导教师: 陈家琪 教授
第五章:JDBC与数据库 第一讲.
JavaScript中常用的互動方式 認識簡單的交談與基本的運算.
第三讲 站点链接与表格布局.
MVC Servlet与MVC设计模式.
第8章 CSS基础知识 【学习目标】 对于一个网页设计者来说,对HTML语言一定不感到陌生,因为它是网页制作的基础,但是如果希望网页能够美观、大方,并且升级维护方便,那么仅仅知道HTML还是不够的,还需要了解CSS。了解CSS基础知识,可以为后面的学习打下基础。 本章主要内容包括: 为什么在网页中加入CSS。
攻击JAVA WEB 阿里巴巴集团安全中心 周拓.
王寧疆 資深講師 資策會數位教育研究所 MCPD/MCT/MVP
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
第一章 面向对象程序设计.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
第3章 JavaScript语言基础.
《网页设计与制作》 教学课件 主讲人:湖南铁道职业技术学院 陈承欢
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
第三章 使用XMLHttpRequest对象
第二章 JAVA语言基础.
一、登录界面 (一)登录方式 1、访问广东工程咨询网 ( 动态里,“咨询师登记工作”专栏 2、 IE地址栏中直接键入管理系统 地址(
5.1 – 表格(FORM) 輸入元素 : 兩種傳遞方法 : GET or POST 範例 1. 文字欄位 Text box
Ajax编程技术 第十章 使用外部数据.
教師: 陳明瑤 電郵: 網際網路應用-網頁設計3 教師: 陳明瑤 電郵:
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
DhtmlXGrid表格显示控件简介.
网络协会2017培训 恶补Web知识训练营 2017/4/7 – Payne.
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
Ajax编程技术 第一章 Ajax简介.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
行政院研究發展考核委員會 【網頁無障礙設計】說明會
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
8 网页制作基础知识 赵国庆 博士 北京师范大学教育技术学院
本單元介紹何謂變數,及說明變數的宣告方式。
程式設計實作.
網頁製作比賽 ----技術探討
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Java程序设计 第9章 继承和多态.
Java语言程序设计 第八部分 Applet小程序.
NAMO網頁製作教學簡報 講師:李惠茹.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
C/C++/Java 哪些值不是头等程序对象
网 站 设 计 与 建 设 Website design and developments
简单工厂模式.
Open方法和close方法 主讲人:傅伟玉.
程式語言與邏輯 高慧君 台北市立南港高中 2006年12月22日.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第 11 章 XML資料的傳遞 –XmlHttpRequest物件
第二章 Java基本语法 讲师:复凡.
Ajax编程技术 第六章 调试与错误处理.
JSP程序设计 第9章 Servlet简介.
第十二章 过滤器.
C# 基本語法、變數.
(輕量化)中小學教師專業發展 線上課程學習平台
第二章 Java语法基础.
网 站 设 计 与 建 设 Website design and developments
Unity回傳統計資訊程式說明: 填寫回傳資訊網址(theUrl)。
第二章 Java基本语法 讲师:复凡.
黑龙江省科学基金 项目验收填报培训 黑龙江省计算中心 2015年09月.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
JavaScript 教师:魏小迪
Summary
Presentation transcript:

AJAX基础

课程目标 掌握AJAX基础 AJAX原理 AJAX的WEB开发

基于标准的表示技术,使用XHTML与CSS  动态显示和交互技术,使用Document Object Model(文档对象模型)  数据互换和操作技术,使用XML与 XSLT  异步数据获取技术,使用XMLHttpRequest  JavaScript 将以上的一切都结合在一起

在Ajax应用程序中,XMLHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器响应信息和数据。   需要注意的是JavaScript本身并不具有向服务器发送请求的能力,要么使用window.open()方法重新打开一个页面,要么使用XMLHttpRequest对象发送请求,不同的是,前者是普通的即同步交互模式,而后者是异步交互模式。

XMLHTTP http_request = new ActiveXObject("Msxml2.XMLHTTP");//新版本IE   http_request = new ActiveXObject("Microsoft.XMLHTTP");//旧版本IE  http_request = new XMLHttpRequest();  //Netscope浏览器

onreadystatechange:指定当readyState属性改变时的事件处理句柄,属性只写。

readyState:返回当前请求的状态,属性只读。     这些状态用长度为4的整形数据表示,其属性的状态含义如下:     0:未初始化(对象已经建立,但是未初始化,即尚未调用open方法创建http请求)     1:初始化(对象已经建立,但是未调用send方法发送http请求)     2:发送数据(send方法已经被调用,但是当前的状态以及http头未知)     3:数据传送中(已经接收部分数据,因为响应及http头不全,这时通过response系统方法获取部分数据会出现错误)     4:传送完成(数据完毕,此时可以通过response系统方法获取完整的回应数据)  responseBody:将回应信息正文以unsigned byte 数组形式返回,属性只读。  responseText:以字符串的形式返回服务器响应信息,属性只读。  responseXML:将响应信息格式化为XML Document对象返回,属性只读。

XMLHttpRequest对象的方法以及含义如下:     abort:取消当前请求;         语法:http_request.abort();调用此方法,当前请求返回uninitialized状态。     getAllResourceHeaders:获取相应的全部http头信息;像JSP中的HttpServletRequest对象一样,获取http请求的     请求头信息,语法:headers = http_request.getAllResourceHeaders();     getResourceHeader:从响应信息中获取指定的http头信息。         语法:head = http_request.getResourceHeader("header-name");     open:创建一个新的http请求,并指定此请求的方法,URL,以及验证信息(用户名/密码)。         语法:http_request.open(method,url,async,user,password);         async为布尔值,指定请求是否异步方式,默认为true;如果为真,当state状态改变时会调用onreadystatechange属性指向的回调函数。如果服务器需要验证,则应该指定用户名和密码 。    

 send:发送请求到http服务器并接收回应。创建http请求后,就可以向服务器发送http请求,send方法被调用        语法:http_request.send(varBody);        参数varBody为要发送给服务器的内容。如果没有内容要发送,varBody参数可以省略,但最好写为null,因为如果省略不写在Firfox中会 报错,所以就为http_request.send(null);。此方法的同步或异步方式取决于open方法中的async参数。     setRequestHeader:单独设定请求的某个头。  status:返回当前HTTP请求的状态码,属性只读。如:404=“文件未找到”,200=“成功”  statusText:返回当前HTTP请求的状态行,属性只读

例子 <SCRIPT LANGUAGE="JavaScript"> var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); xmlHttp.open("GET", "http://localhost:8080/index.html", true); xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4) { alert(xmlHttp.responseText); } xmlHttp.send(); </SCRIPT>

public class ajaxServlet extends HttpServlet{ private static final String CONTENT_TYPE="text/xml; charset=gb2312"; public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ response.setContentType(CONTENT_TYPE); PrintWriter out=response.getWriter(); String action=request.getParameter("action"); if(("send").equals(action)){ StringBuffer sb=new StringBuffer(""); sb.append("<type_name>AA</type_name>"); sb.append("<type_name>BB</type_name>"); sb.append("<type_name>CC</type_name>"); sb.append("<type_name>DD</type_name>"); sb.append("</type>"); out.write(sb.toString()); out.close(); }

<body onLoad="getResult()"> <table width="80%" border="0" cellspacing="0" cellpadding="0"> <tr><td id="td"> </td></tr> </table> </body>

function getResult(){ var url = "/Test/ajaxServlet?action=send"; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); }else if (window.ActiveXObject){ req = new ActiveXObject("Microsoft.XMLHTTP"); } if(req){ req.open("GET",url, true); req.onreadystatechange = complete; req.send(null); }} /* 分析返回的XML文档*/ function complete(){ if (req.readyState == 4){ if (req.status == 200) { var type = req.responseXML.getElementsByTagName("type_name"); var str=new Array(); for(var i=0;i< type.length;i++){ str[i]=type[i].firstChild.data; document.all['td'].innerHTML+=str[i];

dwr DWR是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器中的Javascript代码调用Web服务器上的Java代码,就像在Java代码就在浏览器中一样。 DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。 Java从根本上讲是同步机制,然而AJAX却是异步的。

一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。  运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页。

<dwr> <!-- 仅当需要扩展DWR时才需要 --> <init> <creator id="..." class="..." /> <converter id="..." class="..." /> </init> <!-- 没有它DWR什么也做不了 --> <allow> <create creator="..." javascript="..." /> <convert converter="..." match="..." /> </allow> <!-- 有必要告诉DWR方法签名 --> <signatures>...</signatures> </dwr>

Creator是创建这个对象所使用的构建器,如果你希望使用传统的new方法就写成new,如果你希望使用spring来创建则写成spring。 非常有用的参数是exclude和include,exclude可以禁止页面调用后台的某个或某些方法,具体的写法是在create中加入: <exclude method="createDepartment"/>  

<convert match="com. htxx. demo. datasource1. model <convert  match="com.htxx.demo.datasource1.model.Department"  javascript="Department" converter="hibernate3"/> math属性 javascript属性