- 浏览: 371087 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
jiangli19192:
...
自己写的一个启动JBoss服务器的bat批处理 -
56553655:
最好这样:java -Xms3700M -Xmx3700M - ...
测试本机JVM支持的最大内存 -
lizhiy05:
学习一哈……
Web Services体系结构及相关概念 -
ghy200692162:
System.out.println("开始注册Js ...
基于OSGi的JSF Web组件开发问题求解 -
xiao888lin:
你的头像看起来很像我们宿舍老四。。。
测试本机JVM支持的最大内存
1. 初始化XMLHttpRequest对象
- var xmlHttp;
- function createXMLHttpRequest(){
- document.getElementById("myid_02").width=100;
- if(window.ActiveXObject){
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- alert("Microsoft.XMLHTTP");
- }else if(window.XMLHttpRequest){
- xmlHttp=new XMLHttpRequest();
- alert("Http Request");
- }
- }
通过这一步,我们可以得到浏览器的支持方式,这里我的浏览器是Microsoft.XMLHTTP方式(IE6),事实上在IE7之前的版本中,浏览器都是采用"Microsoft.XMLHTTP方式,只有在IE7中,才会使用Http Request方式。因此在以下的说明中,我都将以我的浏览器版本为依据进行阐述。
2. 向服务器端发出请求
- function startRequest(){
- createXMLHttpRequest();
- xmlHttp.onreadystatechange=handleStateChange;
- xmlHttp.open("GET","calculator.jsp",true);
- xmlHttp.send(null);
在AJAX中,许多使用XMLHttpRequest的请求都是从一个HTML事件(例如一个调用JavaScript函数的按钮点击(onclick)或一个按键(onkeypress))中被初始化的。AJAX支持包括表单校验在内的各种应用程序。有时,在填充表单的其它内容之前要求校验一个唯一的表单域。但是目前我们最好还是简单一点的好^^。首先说明一下XMLHttpRequest对象的属性onreadystatechange。这个属性能辨识readyState 属性的改变,无论readyState值何时发生改变,XMLHttpRequest对象都会激发一个readystatechange事件。其中,onreadystatechange属性接收一个EventListener值,该值向该方法指示无论readyState值何时发生改变,该对象都将激活。
表格1.XMLHttpRequest对象的ReadyState属性值列表。
取值 描述
0 描述一种"未初始化"状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化。
1 描述一种"发送"状态;此时,代码已经调用了XMLHttpRequest open()方法并且XMLHttpRequest已经准备好把一个请求发送到服务器。
2 描述一种"发送"状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没有收到一个响应。
3 描述一种"正在接收"状态;此时,已经接收到HTTP响应头部信息,但是消息体部分还没有完全接收结束。
4 描述一种"已加载"状态;此时,响应已经被完全接收。
如果你是一个细心的读者你就会发现这里似乎还要在增加一个JSP页面来处理我们发出的请求信息。为此,我们在这里我们对calculator.jsp进行定义,页面全部内容如下:
--------------------------------------------------------------------------------
Hello World
--------------------------------------------------------------------------------
是不是相当简单!
3. 接收请求信息
在startRequest函数中,我们声明了要使用handleStateChange对象来标识readyState。通过令xmlHttp.onreadystatechange=handleStateChange,我们就成功注册了一个事件处理器。下面就需要对handleStateChange进行具体的是实现,代码如下:
- function handleStateChange(){
- if(xmlHttp.readyState==4){
- if(xmlHttp.status==200){
- document.forms[0].val.value=xmlHttp.responseText;
- }
- }
- }
当readyState值为0、1或2时,responseText包含一个空字符串。当readyState值为3(正在接收)时,响应中包含客户端还未完成的响应信息。当readyState为4(已加载)时,该responseText包含完整的响应信息。因此,我们一直等到readyState为4才开始将结果返回。
4. 第一个Ajax页面全貌(赶紧执行一把吧)
事实上,一个完整的打开服务器链接的通讯方法的定义约定格式如下:
xmlHttp.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword)
其中:
bstrMethod: 连接方式,可用的有GET, POST, PUT, or PROPFIND
bstrUrl: 服务器的url
varAsync(可选): 调用是否异步,默认为true(调用立即返回)
bstrUser(可选):用户名,如果url需要验证时附上
bstrPassword(可选):密码,如果url需要验证时附上
但是通常情况下我们只需要提供前3个参数就足够了。
修改handleStateChange方法,修改后的结果如下:
- <%@ page contentType="text/html; charset=GBK" %>
- <html>
- <head>
- <title>test</title>
- <script language="javascript">
- var xmlHttp;
- function createXMLHttpRequest(){
- if(window.ActiveXObject){
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- //alert("Microsoft.XMLHTTP");
- str=document.getElementById("mydiv_01").innerText;
- document.getElementById("mydiv_01").innerText="【运算结束】";
- }else if(window.XMLHttpRequest){
- xmlHttp=new XMLHttpRequest();
- //alert("Http Request");
- }
- }
- function startRequest(){
- createXMLHttpRequest();
- xmlHttp.onreadystatechange=handleStateChange;
- xmlHttp.open("GET","calculator.jsp",true);
- xmlHttp.send(null);
- }
- function handleStateChange(){
- if(xmlHttp.readyState==4){
- if(xmlHttp.status==200){
- document.getElementById("mydiv_01").innerText=xmlHttp.responseText;
- }
- }
- }
- </script>
- </head>
- <BODY>
- <font size="+6">First Samples for Ajax</font><br>
- <input type="button" name="subButton" value="获取数据" onclick="startRequest();">
- <center><div id="mydiv_01">【等待触发】</div></center>
- </BODY>
5. 用Ajax实现与服务器的交互
修改index页面,在其中增加以下HTML代码:
- <center>
- <form>
- <input type="text" name="val_01" size="10" value="5">*
- <input type="text" name="val_02" size="10" value="8">=
- <input type="text" name="val_03" size="10" value="0">
- </form>
- </center>
修改startRequest方法,修改后结果如下:
- function startRequest(){
- createXMLHttpRequest();
- xmlHttp.onreadystatechange=handleStateChange;
- var val_01=document.forms[0].val_01.value;
- var val_02=document.forms[0].val_02.value;
- xmlHttp.open("GET","calculator.jsp?val_01="+val_01+"&val_02="+val_02,true);
- xmlHttp.send(null);
- }
- function handleStateChange(){
- if(xmlHttp.readyState==4){
- if(xmlHttp.status==200){
- document.getElementById("mydiv_01").innerText=xmlHttp.responseText;
- document.forms[0].val_03.value=xmlHttp.responseText;
- }
- }
- }
最后,运行查看结果。
发表评论
-
让mybatis支持管理和操作多个不同的业务数据库实例
2017-05-07 21:25 6402在微服务大行其道的今天,一个工程中同时操作多个不同的业务数 ... -
Spring Acegi鉴权管理之基础模式(BASIC)
2017-05-01 01:25 1102Acegi久负盛名,这个家伙是一个spring中广泛使用的认 ... -
Restful架构服务构建指南
2017-04-17 01:19 543REST定位为“分布式超媒体应用(Distributed H ... -
集成ibatis的spring工程升级到spring4.0实操手册
2017-04-03 21:57 3296Spring4及已经的版本放弃了对ibatis的集成支持, ... -
Docker使用之Java web应用部署
2017-03-26 13:50 4046此篇博客一部分内容 ... -
Java设计设计模式之桥接模式(Bridge)
2017-03-11 19:19 0... -
Java设计设计模式之组合模式(Composition)
2017-03-11 17:32 1089那王麻子自从做了肉夹馍生意后,真是风生水起,分店开的跟下饺 ... -
Java设计设计模式之适配器模式(Adaptor)
2017-03-05 15:29 1555我的博客自从2008年以 ... -
RBAC原理介绍及开源框架kasai使用分析
2008-08-13 16:20 10572RBAC 模型作为目前 ... -
用Maven Plug-In来构建Corba开发环境
2008-03-21 10:49 3072这两天研究Corba,总是感觉需要在Java的命令行执行“id ... -
LDAP介绍
2008-03-18 09:57 16731.1. LDAP是什么 LDAP是轻量目录访问协议,英文全称 ... -
Java与CORBA技术结合的前景展望
2008-03-13 11:09 1947随着Internet、Intranet及Extranet在全球 ... -
Drools规则引擎应用总结
2008-02-01 10:07 0package com.playphone.qc.workfl ... -
详解Axis2实现Web Services之ADB篇
2007-07-17 22:35 10045构建一个新的Web Services服务,会有很多种不同的方法 ... -
详解Axis2实现Web Services之AXIOM篇
2007-07-17 22:30 7006AXIOM——AXis 对象模型(AXis Object M ... -
详解Axis2实现Web Services之POJOs篇
2007-07-17 22:25 5344在Axis2对Web Services的众多实现方式中,POJ ... -
Web Services体系结构及相关概念
2007-07-17 22:20 3914Web Services体系结构是面向对象分析与设计(OOA ... -
Spring包结构以及各个包之间引用关系说明
2007-07-17 22:02 5168Spring 包结构说明: spring.jar 包含 ... -
在Javascript中用来获取页面焦点信息
2007-07-17 16:59 4222在Javascript中用来获取页 ... -
详解Hibernate与WebService结合使用
2007-07-17 16:58 2502以前一直在研究EJB和Struts,最近开始研究Hiber ...
相关推荐
【标题】"Ajax 第一个 HelloWorld" 是初学者进入异步JavaScript和XML(Asynchronous JavaScript and XML)技术领域的起点。Ajax是一种在无需刷新整个网页的情况下,能够更新部分网页的技术,极大地提升了用户体验。...
**JSF(JavaServer Faces)入门 HelloWorld 指南** JavaServer Faces (JSF) 是一个用于构建用户界面的 JavaEE 核心技术,它提供了一种声明式的方式来创建 Web 应用程序的用户界面。JSF 提供了一个组件模型,使得...
本教程将详细讲解如何在Visual Studio 2010(VS2010)中创建一个简单的“HelloWorld”WebService。这个过程是开发者入门.NET WebService开发的基本步骤。 首先,启动Visual Studio 2010并创建一个新的项目。选择...
下面我们将深入探讨Ajax的核心概念、工作原理以及如何创建一个“Hello, World”级别的Ajax应用。 Ajax的核心概念主要围绕以下几个方面: 1. **异步通信**:Ajax的核心特性是其异步性,这意味着它可以在不阻塞用户...
在这个"HelloWorld1"的例子中,我们将深入理解Ajax的基本工作流程以及涉及到的关键概念。 首先,我们需要监听窗口的`load`事件,当页面加载完成后,执行指定的函数。在这个函数中,我们获取页面上的第一个`<a>`标签...
在"HelloWorld.rar"这个压缩包中,我们很显然会找到一个基础的ExtJS项目,用于初学者学习和理解如何在实践中应用和导入ExtJS组件库。 在深入探讨之前,先来了解一下ExtJS的核心特性。ExtJS 提供了一个丰富的组件...
<create class="com.example.HelloWorld" javascript="HelloWorld"> ``` 这段配置表示允许JavaScript创建一个名为`HelloWorld`的对象,并可以调用其中的`getName`方法。 3. **创建Java类**:创建一个名...
- 创建一个HTML文件,例如`HTML_AJAX-HelloWorld.html`: ```html function sayHello() { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr....
这个“Ajax实现helloworld!实例”是针对初学者的一个项目,旨在帮助他们理解并掌握如何在Eclipse开发环境中,结合Struts框架来运用Ajax技术。下面我们将详细探讨这一主题。 首先,我们需要了解Ajax的基本概念。Ajax...
《HelloWorld框架详解——构建前后台交互的基础》 在编程世界中,“Hello, World!”是初学者接触的第一个程序,它标志着编程旅程的开始。而“HelloWorld框架”则是一个简化版的、专用于演示和教学的框架,它帮助...
在本实例中,我们关注的是一个名为"HTML_AJAX-HelloWorld"的压缩包,它包含了使用PEAR(PHP扩展和应用库)中的html_ajax组件实现的一个基本AJAX(异步JavaScript和XML)示例。 首先,让我们理解HTML(超文本标记...
例如,`HelloWorld.xhtml`,并在其中编写如下代码: ```html <!DOCTYPE html> xmlns:h="http://xmlns.jcp.org/jsf/html"> <title>Hello World <h1>#{helloBean.message} ``` 这里,`#{helloBean....
这个“JSF HelloWorld”示例将帮助我们了解JSF的基础工作原理以及如何开始使用它。我们将探讨以下几个关键知识点: 1. **JSF 概述** JSF 是一种组件驱动的MVC(Model-View-Controller)框架,它简化了创建和维护...
"RAP Helloworld" 是一个初学者入门级别的程序,它标志着你在探索 Rich Ajax Platform(简称 RAP)的旅程已经开始。RAP 是一个强大的、基于 Java 的 Web 应用程序框架,专门设计用于构建富客户端应用程序,其核心是...
虽然在描述中未提及,但在实际开发中,你可以通过集成PrimeFaces来增强"HelloWorld"应用的用户体验,例如使用`<p:commandButton>`实现AJAX操作,或使用`<p:dialog>`显示对话框。 **学习资源** 为了深入学习JSF 2.0...
接下来,我们来看看`helloworld.js`文件,它包含了AngularJS应用的逻辑部分: ```javascript var app = angular.module('myApp', []); app.controller('HelloCtrl', function($scope) { $scope.greeting = '你好,...
在“Dwr helloworld小例子”中,我们可以通过一个简单的项目来学习DWR的基本用法。MyEclipse是一款强大的集成开发环境,特别适合于Java和Web应用的开发,它内置了对DWR的支持。 首先,我们需要在MyEclipse中创建一...
在开始DWR HelloWorld例子之前,我们需要在项目中引入DWR相关的jar文件,并在web.xml中配置DWR的Servlet。这通常包括设置DWR Context Path、允许访问的类等参数。 3. **创建HelloWorld Java类** 首先,我们需要在...
在这个"Dwr+Demo+helloworld"示例中,我们将探讨如何利用DWR轻松实现JavaScript与Java之间的交互,创建一个简单的"Hello, World!"应用程序。 首先,我们需要了解DWR的基本概念。DWR的核心功能是提供一个代理层,...
标题中的"hello_helloworld_htmljavascript_javascript_"似乎是一种组合关键词的方式,它可能代表着一个初学者入门编程时常常遇到的“Hello, World!”程序,这里特别提到了HTML、JavaScript和CSS这三个关键技术。...