本文将通过一个具体的例子来展示Ajax的工作原理,通过与传统请求响应方式的对比展现Ajax中处理请求响应的不同方式。在这个示例程序中,所要完成的任务非常简单,仅仅需要输入一个姓名然后提交这个表单,在服务器端处理这个请求,然后在页面显示处理的结果,在下面的示例程序中,将展示通过传统方式和Ajax方式分别处理这个请求响应的具体过程。
传统方式:
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <body>
- <form action="SayHello.jsp">
- name:<input type="text" name="name"/>
- <input type="submit" name="submit"/>
- </form>
- <%
- if(request.getParameter("name")!=null&&request.getParameter("name").length()>0)
- out.print("Hello "+request.getParameter("name"));
- %>
- </body>
- </html>
传统方式的实现方式是直接将表单提交到自身的页面,然后在服务器端经过编译后执行其中的Java代码。
Ajax方式(Servlet代码以及配置文件略):
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>SayHello</title>
- <script type="text/javascript">
-
- function createXMLHttpRequest(){
-
- if(window.XMLHttpRequest){
-
-
- XMLHttpReq=new XMLHttpRequest();
- }else{
-
-
- if(window.ActiveXObject){
- try{
- XMLHttpReq=new ActionXObject("Msxm12.XMLHTTP");
- }catch(e){
- try{
- XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
- }catch(e){}
- }
- }
- }
- }
-
- function handleResponse() {
-
- if (XMLHttpReq.readyState == 4) {
-
- if (XMLHttpReq.status == 200) {
- var out = "";
- var res = XMLHttpReq.responseXML;
- var response= res.getElementsByTagName("response")[0].firstChild.nodeValue;
-
- document.getElementById("Hello").innerHTML = response;
- }
- }
- }
-
- function sendRequest(url){
-
- createXMLHttpRequest();
-
- XMLHttpReq.onreadystatechange=handleResponse;
-
- XMLHttpReq.open("GET",url,true);
-
- XMLHttpReq.send(null);
- }
-
- function sayHello()
- {
- var name=document.getElementById("name").value;
-
- sendRequest("SayHell?name="+name);
- }
- </script>
- </head>
- <body>
- <font size="1">
- name:<input type="text" id="name"/>
- <input type="button" value="提交" onclick="sayHello()"/>
- <div id="Hello"></div>
- </font>
- </body>
- </html>
代码解析:
1.创建XMLHttpRequest
2.设置回调函数
3.初始化XMLHttpRequest组建并发送请求
4. 服务器返回响应信息
5. 解析服务器返回的信息,更新用户界面
详细调用过程如下java教程网
最终Ajax方式处理请求的效果是通过XMLHttpRequest对象向服务器发送请求,在得到服务器的返回的处理结果以后,文本框中的用户输入信息依然存在,使用Ajax只是刷新了页面的局部区域,把处理的结果展示在页面的指定位置,对于页面的其他部分不会进行刷新。
分享到:
相关推荐
AJAX原理 原理 AJAXAJAX原理 原理 AJAXAJAX原理 原理 AJAX
关于Ajax原理的ppt 理解AJAX原理 理解AJAX核心对象 了解异步调用基本原理 使用异步调用构建简单AJAX程序
Ajax原理与系统开发》源码 Ajax原理与系统开发》源码
ajax ajax原理 ajax代码 ajax编程 ajax学习
主要关于ajax原理、XMLHTTPRequest等介绍
ajax原理
ajax原理,ajax原理和XmlHttpRequest对象,ajax优缺点
Ajax原理 和开发指南
Ajax原理详细说明.docAjax原理详细说明.doc
Ajax原理详细说明
ajax原理及应用,概念,技术以及xmlhttprequest实例化
Ajax原理图解借鉴.pdf
Ajax原理介绍,详细介绍了ajax的工作原理!
AJAX原理[收集].pdf
描述原生ajax的原理,以及详细的用法 1.什么是Ajax技术? Ajax 由javascript , xml , css 的组合来做到一定功能的技术 2.它的工作原理是什么? 它会产生一个Ajax引擎对象XMLHttpRequest,它由浏览器产生。所以不同...
程序员突击:Ajax原理与系统开发
AJAX原理及其在Web开发中的应用.pdf
Ajax 原理和应用.如果你对Ajax不了解或者不是很熟悉的,可以来看看 文档通过10个方面,比较详细的给你介绍这一技术。 1、ajax技术的背景 2、ajax技术的意义 3、关于ajax的名字 。。。等等
1 原始ajax原理 2 jquery JDBC 3 json数据 4 三级联动 5 仿百度自动提示 6 fromValidator验证 其中自带jar包 修改 DBconfig Mysql数据库配置文件直接运行即可 方便大家学习 ~~~同时鄙视那些高分卖例子的人... ...
十分经典的Ajax实例,可以讲通用 网页无刷新,异步请求实现的相当完美