Ajax原理

 

本文将通过一个具体的例子来展示Ajax的工作原理,通过与传统请求响应方式的对比展现Ajax中处理请求响应的不同方式。在这个示例程序中,所要完成的任务非常简单,仅仅需要输入一个姓名然后提交这个表单,在服务器端处理这个请求,然后在页面显示处理的结果,在下面的示例程序中,将展示通过传统方式和Ajax方式分别处理这个请求响应的具体过程。

传统方式:

 

Java代码 
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
  2.     pageEncoding="ISO-8859-1"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10.     <form action="SayHello.jsp">  
  11.         name:<input type="text" name="name"/>  
  12.         <input type="submit" name="submit"/>  
  13.     </form>  
  14.     <%  
  15.         if(request.getParameter("name")!=null&&request.getParameter("name").length()>0)  
  16.             out.print("Hello "+request.getParameter("name"));  
  17.     %>  
  18. </body>  
  19. </html>  


 

传统方式的实现方式是直接将表单提交到自身的页面,然后在服务器端经过编译后执行其中的Java代码。

Ajax方式(Servlet代码以及配置文件略):

 

Java代码 
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
  7. <title>SayHello</title>  
  8. <script type="text/javascript">  
  9.     //创建XMLHttpReques对象  
  10.     function createXMLHttpRequest(){  
  11.           
  12.         if(window.XMLHttpRequest){  
  13.             //Mozilla浏览器  
  14.               
  15.             XMLHttpReq=new XMLHttpRequest();  
  16.         }else{  
  17.               
  18.             //IE浏览器  
  19.             if(window.ActiveXObject){  
  20.                 try{  
  21.                     XMLHttpReq=new ActionXObject("Msxm12.XMLHTTP");  
  22.                 }catch(e){  
  23.                     try{  
  24.                         XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");  
  25.                     }catch(e){}  
  26.                 }  
  27.             }  
  28.         }  
  29.     }  
  30.     //处理服务器响应结果  
  31.      function handleResponse() {  
  32.         // 判断对象状态  
  33.         if (XMLHttpReq.readyState == 4) {   
  34.             // 信息已经成功返回,开始处理信息  
  35.            if (XMLHttpReq.status == 200) {   
  36.                 var out = "";  
  37.                 var res = XMLHttpReq.responseXML;  
  38.                 var response= res.getElementsByTagName("response")[0].firstChild.nodeValue;  
  39.                 //5. 解析服务器返回的信息,更新用户界面  
  40.                 document.getElementById("Hello").innerHTML = response;  
  41.                }  
  42.          }  
  43.        }  
  44.     //发送客户端的请求  
  45.     function sendRequest(url){  
  46.         //1.创建XMLHttpRequest  
  47.         createXMLHttpRequest();  
  48.         //2.设置回调函数  
  49.         XMLHttpReq.onreadystatechange=handleResponse;  
  50.         //3.初始化XMLHttpRequest组建并发送请求  
  51.         XMLHttpReq.open("GET",url,true);  
  52.         //发送请求  
  53.         XMLHttpReq.send(null);  
  54.     }  
  55.     //开始调用Ajax的功能  
  56.     function sayHello()  
  57.     {  
  58.         var name=document.getElementById("name").value;  
  59.         //发送请求  
  60.         sendRequest("SayHell?name="+name);  
  61.     }  
  62. </script>  
  63. </head>  
  64. <body>  
  65.     <font size="1">  
  66.         name:<input type="text" id="name"/>  
  67.         <input type="button" value="提交" οnclick="sayHello()"/>  
  68.         <div id="Hello"></div>  
  69.     </font>  
  70. </body>  
  71. </html>  


 

代码解析:

1.创建XMLHttpRequest

2.设置回调函

3.初始化XMLHttpRequest组建并发送请求

4. 服务器返回响应信息

5. 解析服务器返回的信息,更新用户界面

详细调用过程如下java教程网

最终Ajax方式处理请求的效果是通过XMLHttpRequest对象向服务器发送请求,在得到服务器的返回的处理结果以后,文本框中的用户输入信息依然存在,使用Ajax只是刷新了页面的局部区域,把处理的结果展示在页面的指定位置,对于页面的其他部分不会进行刷新。

《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值