`
M_ittrue
  • 浏览: 77003 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Ajax总结报告

阅读更多
   AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.在说它之前,自然要介绍一下它的产生最主要原因了。
   我们以前都是通过表单(form)去提交信息的,当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法其实在效率上是不高的,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。
   与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,也就是不需要反回整个页面,只是抽取必要的信息进行页面的局部更新。这样一来在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快了。同时很多的处理工作可以在发出请求的客户端机器上完成,也就是无需要Servelet作出回应,比如一些提示框,所以Web服务器的处理时间也减少了,也就是大缩短了用户等待的时间。好了,说了那么多,还是贴代码出来讲解一下吧。
<%@ 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=utf-8">

<script type="text/javascript">
 var request;

 //叛断所用的游览器是否支持Ajax
  function suposeAjax(){
	  try {      //支持火狐游览器
			request = new XMLHttpRequest();
		} catch (trymicrosoft) {
			try {//支持IE旧版游览器
				request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (othermicrosoft) {
				try {//支持IE6以上游览器
					request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (failed) {
//否则该游览器不支持Ajax
					request = false;
				}
			}
		}
//弹出提示信息,这里的alert(),相就当于java里面的System.out.println();只不过它是以文本框显示而已,这个用在即时提示方面很方便的
		if (!request)
			alert("Error initializing XMLHttpRequest!");
 }

  //回调方法,如果回调
  function callBalckMethod(){
/*request.readyState 几种状态简单分类
*0 - (未初始化)还没有调用send()方法
*1 - (载入)已调用send()方法,正在发送请求
*2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
*3 - (交互)正在解析响应内容
*4 - (完成)响应内容解析完成,可以在客户端调用了 
*request.status ==200表示返回正常
 */
 if(request.readyState ==4 && request.status ==200){
//这句语名是先根据控件Id得到div控件
     document.getElementById("change").innerHTML = request.responseText;
     }
  }

  //联结的主方法
  function connectMethod(){
//给request初始化
	  suposeAjax();
//绑定回调方法,当服务器作出反应时会自动调用callBalckMethod方法,在此只需写方法名即可
	  request.onreadystatechange = callBalckMethod;  
//获得用户名与密码,在Ajax里所有变量都用var定义,
	  var userName = document.getElementById("userName").value;
	  var userPwd = document.getElementById("userPwd").value;
	  alert(""+userName+"<>"+userPwd);
//这里相关于接通一条联接游览器端跟Servlet端的管道,通过这条管道去收发信息,跟Soket管道原理是大概一样的
	  request.open("post","Servlettext",true);
	  request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//send方法是发送信息到Servlet这里我传两个参数,它们之间用“&”隔开的名值对,多个的时候也是同样的道理的
	  request.send("userName="+userName+"&userPwd="+userPwd);
  }
</script>
<title></title>
</head>
<body>
我将在这里的div标签内把服务器反回的信息进行局部更新
<div id="change"></div>
<input type="text" name="userName" id="userName"><br>
<input type="password" name="userPwd" id="userPwd">
<input type="button" value="登陆" onclick="connectMethod();">
</body>
</html>


服务端代码是:
package cn.netjava.Servlet;

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;



import cn.netjava.action.Action;
import cn.netjava.action.ActionFactory;

/**
 * Servlet implementation class Constorl
 */
public class Constorl extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public Constorl() {
        super();
    }

	public  void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//通过名值对获取用户名和密码,并进行匹配
	  String userName = request.getParameter("userName");
	  String userPwd = request.getParameter("userPwd");
	  System.out.println("userName"+userName+"userPwd"+userPwd);
//获得输出对象,
	  PrintWriter pw = response.getWriter();
	  if(userName!=null && userPwd!=null && userName.equals("netjava" ) && userPwd.equals("netjava")){
//输出,最终在Ajax里面可以通过request.resppmseText获得
        pw.print("Sucessfue!!!");
	 }else{
		pw.print("fail");
	}

}
}


总得来说,用了Ajax后是会方便很多,也会快速很多,比如我们在做验证码的时候,当用户输错验证码时,我们没必要反回一个新的登陆页面,只是需要换一个新的验证码即可。那么此时我们就需要用到局部更新,上面的例子所用到的Ajax很好的给我们解决了这个问题,我们只要在Servlet反回中提抽新的验证码,然后放在指定的位置就可以了。这样比起更新整个页面省时,又省宽带。
分享到:
评论

相关推荐

    AJAX_技术总结_设计模式

    **AJAX 技术总结与设计模式** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,提升了用户体验。...

    AJAX电子书(总结)

    **AJAX电子书总结** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。这种技术的出现极大地提升了用户体验,因为它允许后台与服务器进行数据交换,而用户界面...

    ajax使用jquery json实现的省市县三级联动经验总结

    ### 总结 通过Ajax结合jQuery和JSON,可以有效地实现省、市、县三级联动功能,不仅提升了用户体验,也优化了前后端数据交互过程。在实际项目中,开发者可以根据具体需求调整代码逻辑,如增加错误处理、优化数据展示...

    基于MVC用JSPServlet实现JPetStore实验报告+使用AJAX和jQuery改善用户体验实验报告.doc

    在本实验报告中,我们将探讨如何使用MVC(Model-View-Controller)设计模式通过JSP和Servlet实现JPetStore应用程序,并进一步利用AJAX和jQuery技术优化用户体验。实验旨在加深对Web应用开发的理解,特别是Java相关...

    JavaScript实现Ajax总结

    **总结** Ajax的核心在于XMLHttpRequest对象的使用,通过它与服务器进行异步通信。虽然存在一些缺点,但在优化用户体验方面,Ajax依然是Web开发中的重要技术。理解并掌握Ajax的工作原理和实现方式,对于构建交互性强...

    计算机毕业实习总结报告.doc

    计算机毕业实习总结报告 本文档是作者在计算机专业毕业实习期间的总结报告,记录了作者在两个公司的实习经历和收获。作者首先介绍了在第一个公司的实习经历,负责餐饮管理软件测试,并学习使用自动化测试软件。然后...

    AJAX网站设计实训

    总结 本课程旨在让学生掌握 Ajax 技术、Jquery 框架、Jquery UI 等知识,并能应用于实际开发中。通过理论教学和实践教学,学生能够掌握异步请求的理解与 Jquery 框架的使用,并具备独立开发 Web 项目的能力。

    ajax 异步 拼接表

    #### 四、总结 通过以上步骤,我们成功实现了利用AJAX技术进行异步传参获取JSON数据,并循环拼接表头和数据进行展示的功能。这种方法不仅提高了网页的响应速度,还大大提升了用户体验。未来随着技术的发展,类似的...

    dynatrace-AJAX-edition软件

    总结来说,“dynatrace-AJAX-edition”是一款强大的前端性能测试工具,它通过对AJAX应用的深度剖析,帮助开发者提升用户体验,优化网站性能。无论是开发阶段的性能调试,还是上线后的持续监测,它都能提供有力的支持...

    dynatrace-AJAX-edition-4.2.0.1528.zip

    总结来说,Dynatrace AJAX Edition 4.2.0.1528是Web开发者不可或缺的工具,它通过强大的性能监控和智能诊断功能,为AJAX应用的优化提供了有力的支持。无论是在开发阶段还是生产环境中,都能帮助团队提高应用性能,...

    2021软件公司实习总结报告.docx

    这篇2021年的软件公司实习总结报告详细记录了一位实习生在某科技发展有限公司的实习经历,该公司专注于软件开发,特别是Java和C#领域。实习期间,实习生深入参与了Java项目的开发,从需求分析到开发实施,同时学习了...

    AJAX通过跨域传输信息生成PDF文件

    总结起来,这个示例展示了如何结合AJAX、JSONP和TCPDF库,实现跨域数据传输并生成PDF文件。这种技术常用于动态报告、数据分析和自定义打印场景,使得Web应用能够提供更丰富的交互性和功能性。了解并掌握这些技术,...

    php+pako+ajax压缩数据

    总结一下,"php+pako+ajax压缩数据"是一个有效的优化策略,通过在服务器端压缩数据,减少客户端的数据接收量,再利用Ajax无刷新更新和Pako.js的解压缩能力,提高大容量数据在Web环境中的传输效率和用户体验。...

    用jquery实现ajax上传文件php版.zip

    这个功能基于AJAX技术,可以提高用户体验,因为用户在上传文件时无需等待页面刷新...服务器端的PHP脚本处理文件接收并进行保存,同时与客户端保持通信,报告上传进度和结果。整个过程提高了用户体验,简化了开发流程。

    酒店客房管理系统项目总结报告.pdf

    【酒店客房管理系统项目总结报告】 本报告将详细阐述一个基于毕业设计的酒店客房管理系统项目的实施过程、成果及重要知识点。该项目旨在为酒店提供一个高效、便捷的管理平台,以优化客房预订、入住、退房等业务流程...

    基于Ajax技术的聊天室的研究报告及应用.doc

    《基于Ajax技术的聊天室的研究报告及应用》 随着信息技术的飞速发展,人们的生活方式发生了翻天覆地的变化,网络已经成为人们交流信息的重要场所。网络聊天室作为线上沟通的重要工具,其用户体验对于吸引和留住用户...

    招商地产办公自动化系统升级项目总结报告V103.pptx

    【招商地产办公自动化系统升级项目总结报告】 本报告聚焦于深圳招商房地产有限公司的办公自动化系统升级项目,旨在回顾项目的实施过程、达成的目标以及所取得的成果。该项目自2008年4月启动以来,历经近一年的时间...

    cognos +ajax 异步刷新

    用户可以通过Cognos创建复杂的业务报告,并通过多种方式展示数据结果。 #### 2. Ajax技术简介 Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。它能够在不重新加载整个页面的情况下,...

    国产Ajax框架 Buffalo

    总结来说,国产Ajax框架Buffalo是一个旨在简化前端开发、提高用户体验的解决方案。它结合了现代JavaScript特性,提供了全面的Ajax支持,以及组件化、数据绑定和路由管理等功能,让开发者能够更专注于业务逻辑,而...

    2021软件公司实习总结报告.doc

    同时,运用ajax实现了与服务器的异步交互,以JSON格式返回数据,避免页面刷新。这需要对前端技术和JSON有深入的理解。 【心得体会与成长】 这次实习不仅提升了我的专业技能,也锻炼了我的问题解决能力和团队协作...

Global site tag (gtag.js) - Google Analytics