ajax总结及案例
一、实验简介
目的:检验输入登录名在数据库中是否存在,如果存在,当鼠标移出登录名框后,会提示用户名已存在,并且鼠标指针自动回到登录名框内。
操作步骤:
1、获取登录名的值
2、根据获取的登录名,组织查询条件,查询用户信息。
*如果值存在,不能保存
*如果值不存在,可以保存
二、实验操作
jsp部分:
<s:textfield name="logonName" id="logonName" size="20" maxlength="25" onblur="checkLogonName()" />
ajax部分:
//创建Ajax引擎
function createXmlHttpRequest(){
var xmlHttp;
try{
//Firefox,Opera,safari
xmlHttp=new XMLHttpRequest();
}catch(e){
try{
//internet Explorer
xmlHttp=new ActiveXObject("Mxxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
return xmlHttp;
}
 function checkLogonName(){
     var logonName=document.getElementById("logonName").value;
     //第一步:创建一个ajax引擎
     xmlHttp=createXmlHttpRequest();
     //第二步:事件处理函数,实质上相当于一个监听,监听服务器与客户端的连接状态
     xmlHttp.onreadystatechange=function(){
     //存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
         if(xmlHttp.readyState==4){
         /**
          readyState:存有 XMLHttpRequest 的状态。从0到4发生变化。
              0: 请求未初始化
              1: 服务器连接已建立
              2: 请求已接收
              3: 请求处理中
              4: 请求已完成,且响应已就绪
          **/
             if(xmlHttp.status==200){
             /**
              status:
                  400: 未找到页面
                  200:"OK"
              **/
                 var data=xmlHttp.responseText;
                 /**
                     responseText    获得字符串形式的响应数据。
                     responseXML               获得 XML 形式的响应数据。
                 **/
                 if(data==1){
                     //说明已经存在
                     alert("当前输入的登录名["+logonName+"]已经存在");
                     document.getElementById("logonName").value="";
                     document.getElementById("logonName").focus();
                 }
             }
         }
     }
     //第三步:与后台服务器创建一个连接
     xmlHttp.open("POST","../../CheckLogonName",true);
     /**
         open(method,url,async)
             规定请求的类型、URL 以及是否异步处理请求。
              method:请求的类型;GET 或 POST
              url:文件在服务器上的位置
              async:true(异步)或 false(同步)
     **/
     xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//设置请求头
     //第四步:发送请求的参数
     xmlHttp.send("logonName="+logonName);
     /**
         send(string)
             将请求发送到服务器。
             string:仅用于 POST 请求
     **/
     /**
         GET 还是 POST?
             与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
             然而,在以下情况中,请使用 POST 请求:
                 1: 无法使用缓存文件(更新服务器上的文件或数据库)
                 2: 向服务器发送大量数据(POST 没有数据量限制)
                 3: 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
     **/
 }
路径设置:
  在web.xml配置文件中,新建一个Servlet-mapping和Servlet
<servlet>
<servlet-name>CheckLogonName</servlet-name>
<servlet-class>cn.itcast.elec.servlet.CheckLogonName</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>CheckLogonName</servlet-name>
<url-pattern>/checkLogonName</url-pattern>
</servlet-mapping>
新建一个Servlet文件
IElecUserService elecUserService=(IElecUserService)ServiceProvider.getService(IElecUserService.SERVICE_NAME);
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String logonName=request.getParameter("logonName");
/**
* checkflag:判断当前登录名是否在数据库中存在
* 如果查询结果有值,checkflag=1;则,数据库中有重复值
* checkflag=2,数据库中没有重复值
*/
String checkflag=elecUserService.checkLogonName(logonName);
out.print(checkflag);
out.flush();
out.close();
}
 public String checkLogonName(String logonName) {
         // TODO Auto-generated method stub
         String hqlWhere=" and o.logonName = ? ";
         Object [] params={logonName};
         List<ElecUser> list=elecUserDao.findCollectionByConditionNoPage(hqlWhere, params, null);
         String checkflag="";
         if(list!=null&&list.size()>0){
             checkflag="1";
         }else{
             checkflag="2";
         }
         return checkflag;
     }
ajax总结及案例的更多相关文章
- AJAX应用小案例
		此案例在XAMPP本地服务器上运行,需要应用jquery3.1.1的版本,应用JSON传递数据 代码如下: html代码: <!DOCTYPE html><html lang=&qu ... 
- ajax调用数据案例,二级联动
		题目:请针对移动端web浏览器制作一个结账数据信息展示页面 要求: 1. 页面样式除不使用表格呈现外,可自由选择其他呈现方式 2. 需符合移动端操作习惯 3. 可根据服务区.门店查询结账信息 4. 可 ... 
- ajax基本原理与案例
		一.什么是Ajax AJAX即“Asynchronous Javascript And XML”( 异步 JavaScript和XML),AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互 ... 
- jquery ajax/post 请求  案例
		@RequestMapping("/hello") @ResponseBody public Hello getJson(HttpServletRequest requ ... 
- jSon和Ajax登录功能,ajax数据交互案例
		ajax实例,检测用户与注册 检测用户名是否被占用: 在用户填写完用户名之后,ajax会异步向服务器发送请求,判断用户名是否存在 首先写好静态页面: index.html <!DOCTYPE h ... 
- ajax+php处理案例
		<div> <table> <tr> <th>状态</th> <th>信息</th> </tr> < ... 
- 使用struts dojo ajax源码案例
		我这里使用的jar 包struts2-dojo-plugin-2.2.1.1.jar ===========jsp======================= <%@ taglib prefi ... 
- 【前端学习笔记】2015-09-11~~~~ js中ajax请求返回案例
		<body><textarea id='a' rows=100 cols=300>result:</textarea>><script>var a ... 
- 第六章 jQuery和ajax应用
		ajax是异步JavaScript和xml的简称. 一. ajax补白 优势 不足(不一定是不足) 不需要任何插件(但需要浏览器支持js) XMLHttpRequest对象在不同浏览器下有差异 优秀的 ... 
随机推荐
- Windows注册表内容详解
			Windows注册表内容详解 http://blog.sina.com.cn/s/blog_4d41e2690100q33v.html (2011-04-05 10:46:17) 第一课 注册表 ... 
- Codeforces 1042C (贪心+模拟)
			题面 传送门 分析 思路简单,但代码较复杂的贪心 分类讨论: 有0 负数有奇数个:将绝对值最小(实际最大)的负数和0全部乘到一起,最后删掉0 负数有偶数个:将0全部乘到一起,最后删掉0 没有0 负数有 ... 
- Excel VBA批量处理寸照名字
			需求:因为处理学生学籍照片,从照相馆拿回来的寸照是按班级整理好,文件名是相机编号的文件.那么处理的话,是这么一个思路,通过Excel表格打印出各班A4照片列表,让学生自行填上照片对应姓名.表格收回来后 ... 
- 七层模型? IP ,TCP/UDP ,HTTP ,RTSP ,FTP 分别在哪层?
			IP: 网络层TCP/UDP: 传输层HTTP.RTSP.FTP: 应用层协议 
- 你所遵循的PEP8代码规范是什么?请举例说明其要求?
			1. 变量常量:大写加下划线 USER_CONSTANT.私有变量 : 小写和一个前导下划线 _private_value.Python 中不存在私有变量一说,若是遇到需要保护的变量,使用小写和一个前 ... 
- 点击按钮时,显示不同的div内容
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- 行人重识别(ReID) ——数据集描述 CUHK03
			数据集简介 CUHK03是第一个足以进行深度学习的大规模行人重识别数据集,该数据集的图像采集于香港中文大学(CUHK)校园.数据以"cuhk-03.mat"的 MAT 文件格式存储 ... 
- DbArithmeticExpression arguments must have a numeric common type.
			引用 system.data.linq 
- Ubuntu apt-get install E: 无法定位软件包Ubuntu apt-get install E: 无法定位软件包
			sudo cp /etc/apt/sources.list /etc/apt/sources.list-bak #先将之前的source-list备份 sudo vi /etc/apt/sources ... 
- 带你一文搞定 IO 流相关核心问题
			问:简单谈谈 Java IO 流各实现类的特性? 答:java.io 包下面的流基本都是装饰器模式的实现,提供了各种类型流操作的便携性,常见的流分类如下. 以二进制字节方式读写的流: InputStr ... 
