Java程序开发步骤是什么?(如何使用Ajax技术开发Web应用程序)

%title插图%num

如何使用Ajax技术开发Web应用程序

一、简介

AJAX,一个异步JavaScript和XML的缩略词,是最近出来的技术词语。异步意味着你可以经由超文本传输协议(HTTP)向一个服务器发出请求并且在等待该响应时继续处理另外的数据。这就意味着,例如,你可以调用一个服务器端脚本来从一个数据库中以XML方式检索数据,把数据发送到存储在一个数据库的服务器脚本,或者简单地装载一个XML文件以填充你的Web站而不需刷新该页面。然而,在这项新技术提供巨大能力的同时,它也引起了在"Back"按钮问题上的很多争论。本文将帮助你确定在真实世界中何时使用AJAX是最佳选择。

首先,我假定你对缩略词JavaScript和XML分有一个基本了解。尽管你能通过AJAX请求任何类型的文本文件,但是我在此主要集中讨论XML。我将解释怎样在真实世界中使用AJAX以及怎样在一个工程中评估它的价值。在你读完本文后,你将会明白什么是AJAX,在什么况下,为什么以及怎样使用这项技术。你将要学习,在保持给用户提供直观体验的同时怎样创建对象,发出请求以及定制响应。

我已创建了一个适合于本文的示例工程(你可以下载源代码)。这个示例实现了一个简单的请求-它装载一个包含页面内容的XML文件并且分析数据以把它显示在一个HTML页面中。

二、常规属性和方法

表1和2提供了一个属性和方法的概述- 它们为Windows Internet Explorer 5,Mozilla,Netscape 7,Safari 1.2,和Opera等浏览器所支持。

表1属性

属性 描述

onreadystatechange 当请求对象变化时该事件处理器激活。

readyState 返回指示对象的当前状态的值。

responseText 来自服务器的响应串的版本 。

responseXML 来自服务器的响应的DOM兼容的文档对象。

status 来自服务器的响应的 状态码。

statusText 以一个字符串形式返回的状态消息。

表2方法

方法 描述

Abort() 取消当前HTTP请求。

getAllResponseHeaders() 检索所有的HTTP头值。

getResponseHeader("headerLabel") 从响应体中检索一个HTTP头的值。

open("method","URL"[,asyncFlag[,"userName" [,"password"]) 初始化一个MSXML2.XMLHTTP请求,并从该请求指定方法,URL和认证信息 。

send(content) 发送一个HTTP请求到服务器并接收响应。

setRequestHeader ("label", "value") 指定一个HTTP头的名字。

三、从哪里始

首先,你需要创建XML文件-后面我们对之进行请求并作为页面内容进行分析。你正在请求的文件必须与 目标工程驻留在相同的服务器上。

下一步,创建发出请求的HTML文件。当页面通过使用页面主体 中的onload方法进行加载时,该请求发生。接着,该文件需要一个有ID的div标签,这样当我们准备好要 显示内容时就可以对之进行定位。当你做完所有这些,你的页面的主体上去,如下:

<body onload="makeRequest('xml/content.xml'); ">

<div id="copy"></div>

</body>

四、创建请求对象

为了创建请求对 象,你必须检是否浏览器使用XMLHttpRequest或ActiveXObject。这两个对象之间的主要区别在于使用 它们的浏览器。Windows IE 5 及以上版本使用ActiveX对象; 而Mozilla,Netscape 7,Opera和Safari 1.2及以上版本使用XMLHttpRequest对象。另外一个区别是你创建对象的方式:Opera,Mozilla, Netscape和Safari允许你简单地调用该对象的构造器,但是Windows IE需要把对象的名字传递到ActiveX 构造器中。下面是怎样创建代码来决定要使用哪个对象和怎样创建它的示例:

if (window.XMLHttpRequest)

{ request = new XMLHttpRequest(); }

else if (window.ActiveXObject)

{ request = new ActiveXObject("MSXML2.XMLHTTP"); }

五、发出请求

现在既然你已经创建了你的请求对象,那么你已经为向服务器发 出请求作了准备。创建一个到事件处理器的参考以听取onreadystatechange事件。然后,该事件处理器 方法将在状态发生变化时作出响应。一旦我们完成请求,我们就始创建这个方法。打连接以GET或 POST一个定制的URL-在此是一个content. xml,并且设置一个布尔定义-是否你想要进行异步调用。

现在到了发出请求的时间了。在这个示例中,我使用了null,因为我们使用的是GET; 为了使用 POST,你需要使用下面这个方法发出一个询串:

request.onreadystatechange = onResponse;

request.open("GET". url, true);

request.send (null);

六、定制加载和错误处理消息

你为onreadystatechange方法创建的事件处理器 正是集中进行加载和处理错误的场所。现在到了考虑用户并针对他们与之交互的内容的状态提供反馈的 时候了。在这个实例中,我针对所有的装载状态代码提供反馈,并且也对最经常发生的错误处理状态代 码提供一些基本的反馈。为了显示请求对象的当前状态,readyState属性包括显示在下表中的一些值。

值 描述

0 未初始化,对象没有用数据进行初始化。

1 装载中,对象正在装载它 的数据。

2 装载结束,对象完成了它的数据的装载。

3 可交互,用户能与对象交互了, 尽管它还没有装载结束。

4 完成,对象已经完被初始化。

W3C中有很长的一串有关HTTP 状态代码的定义。我选择了两个状态代码:

200:请求成功了。

404:服务器没有找到与所 请求的文件相匹配的任何东西。

最后,我检任何另外的状况代码-它们将生成一个错误并提供 一个一般错误信息。下面是一个代码示例-你可以用之来处理这些况。注意,我在定位我们前面在HTML 文件的主体中创建的div ID并且对它应用装载和/或错误信息-通过innerHTML方法-这个方法用于设置在 div对象的始和结束标签之间的HTML:

if(obj.readyState == 0)

{ document.getElementById('copy').innerHTML = "Sending Request..."; }

if(obj.readyState == 1)

{ document.getElementById('copy').innerHTML = "Loading Response..."; }

if(obj.readyState == 2)

{ document.getElementById('copy').innerHTML = "Response Loaded..."; }

if(obj.readyState == 3)

{ document.getElementById('copy').innerHTML = "Response Ready..."; }

if(obj.readyState == 4){

if(obj.status == 200){ return true; }

else if(obj.status == 404)

{

// 添加一个定制消息或把用户重定 向到另外一个页面

document.getElementById('copy').innerHTML = "File not found";

}

else

{document.getElementById('copy').innerHTML = "There was a problem retrieving the XML."; }

当状况代码为200 时,这意味着请求成功。下面始进行响应了。

七、分析响应

当你准备好分析来自请求 对象的响应时,真正的工作始了。现在你可以用你请求的数据始工作。仅为测试目的,在发期间 ,可以使用responseText和responseXML属性来显示来自响应的原始数据。为了存取XML响应中的结, 首先使用你创建的请求对象,定位到responseXML属性以检索(你可能已经猜测出来)来自响应的XML。定 位到documentElement-它检索一个到XML响应的根结的参考。

var response = request.responseXML.documentElement;

现在既然你有了到响应的根结的参考,那么你可以使 用getElementsByTagName()以结名字来检索childNodes。下面一行用一个头的nodeName来定位一个 childNode:

response.getElementsByTagName('header') [0].firstChild.data;

使用firstChild.data可以允许你存取该元素中的文本:

response.getElementsByTagName('header')[0].firstChild.data;

下面是怎样 创建这些代码的完整的例子:

var response = request.responseXML.documentElement;

var header = response.getElementsByTagName ('header')[0].firstChild.data;

document.getElementById ('copy').innerHTML = header;

八、需求分析

现在既然你知道怎样使用 AJAX的基础知识,那么下一步就是决定是否在一工程使用它。须记住的最重要的事是,在你还没有刷 新页面时你无法使用"Back"按钮。为此,可以先专注于你的工程中的一小分-它能够从使用 这种类型的交互中受益。例如,你可以创建一个表单-它在用户每次输入一个输入字段或一个字母时询 一个脚本以便进行实时校验。你可以创建一个拖放页面-在释放一项时,它能够把数据发送到一个脚本中 并把该页面的状态保存到一个数据库中。使用AJAX的理由毫无疑问是存在的; 并且这种使用无论对发 者还是用户都会带来益处; 这依赖于具体的条件和执行况。

还有其它方法可用来解决 "Back"按钮的问题,例如使用Google Gmail-它现在能够为你的操作提供一种撤消功能而不刷 新该页面。以后还会出现许多更具创造性的例子-它们将通过提供给发者创建独特实时的体验的手段给 用户带来更大的好处。

九、结论

尽管AJAX允许我们构建新的和改进的方式来与一个WEB页 面进行/交互; 但是作为发者,我们需要牢记产品是不考虑技术的; 它关心的是用户以及其如何与用户 进行交互。没有了用户群,我们构建的工程毫无用处。基于这个标准,我们就能评估应该使用什么技术 以及何时使用它们来创建对相应用户有用的应用。

Java程序开发步骤是什么?

具体操作步骤如下: 第一步:安装JDK。 要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面,选择自己电脑系统的对应版本即可。 第二步:配置Windows上JDK的变量环境 。 JAVA_HOME 先设置这个系统变量名称,变量值为JDK在电脑上的安装路径:C:\Program Files\Java\jdk1.8.0_20。创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径。 Path PATH属性已存在,可直接编辑,在原来变量后追加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 。 CLASSPATH  设置系统变量名为:CLASSPATH  变量值为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 。 注意变量值字符串前面有一个"."表示当前目录,设置CLASSPATH 的目的,在于告诉Java执行环境,在哪些目录下可以找到所要执行的Java程序所需要的类或者包。 第三步: 下载安装Eclipse(已上传附件,电脑打开可下载) 。 Eclipse为Java应用程序及Android开发的IDE(集成开发环境)。Eclipse不需要安装,下载后把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置工作目录即可。 第四步:下载安装Android SDK 。 配置了JDK变量环境,安装好了Eclipse,这个时候如果只是开发普通的JAVA应用程序,那么Java的开发环境已经准备好了。要通过Eclipse来开发Android应用程序,那么需要下载Android SDK(Software Development Kit)和在Eclipse安装ADT插件,这个插件能让Eclipse和Android SDK关联起来。 第五步:为Eclipse安装ADT插件。 前面已经配置好了java的开发环境,安装了开发Android的IDE,下载安装了Android SDK,但是Eclipse还没有和Android SDK进行关联,也就是它们现在是互相独立的,就好比枪和子弹分开了。为了使得Android应用的创建,运行和调试更加方便快捷,Android的开发团队专门针对Eclipse IDE定制了一个插件:Android Development Tools(ADT)。

java应用程序Application和Java小程序Applet有什么区别和共同之处?

一.结构上的区别
(1)运行方式不同。 Java Application,可以独立运行(有java虚拟机的地方他都可以运行)。Java Applet程序不能单独运行,它必须依附于一个用HTML语言编写的网页并嵌入其中,通过与Java兼容的浏览器来控制执行。
(2)运行工具不同。运行Java Applet程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。Java Application程序被编译以后,用普通的Java 解释器就可以使其边解释边执行,而Java Applet必须通过网络浏览器或者Applet观察器才能执行。

(3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,程序执行时,首先寻找main方法,并以此为入口 点开始运行。含有main方法的那个类,常被称为主类,也就是说,Java Application程序都含有一个主类。而Applet程序则没有含 main方法的主类,这也正是Applet程序不能独立运行的原因。尽管Applet没有含main方法的主类,但Applet一定有一个 从 java.applet.Applet派生的类,它是由Java系统提供的。

(4)Java Applet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而Java Application程序则必须另外书写专用代码来营建自己的图形界面。

(5)受到的限制不同Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是 Java Applet 对站 点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于 Applet的引入,使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功 能,不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增 加了交互性。

二.执行方面:
Java Application一般是在本地运行,而Java Applet一般在服务端运行。