前端

<script type="text/javascript">
$(function(){
$("#tid").keyup(function(){
//获取当前输入 的值
var value=$(this).val();
//偷偷摸摸发起请求
var url="${pageContext.request.contextPath }/like"
var params="name="+value;
//先清空下方div
$("#did").empty();
$("#did").hide();
if(value){
//有输入值才发请求
$.post(url,params,function(data){ /* $.each(data,function(index,element){
var content=element.name;
var div="<div onmouseover='m1(this)' onmouseout='m2(this)' onclick='m3(this)' style='text-align:left;' >"+content+"</div>";
$("#did").append(div);
});
$("#did").show() */ $(data).each(function(index,element){
alert(element.name);
var div="<div style='text-align:left' onmouseover='m1(this)' onmouseout='m2(this)' onclick='m3(this)'>"+element.name+"</div>";
$("#did").append(div);
})
$("#did").show(); },"json")
}
})
}) function m1(obj){
//修改css样式
$(obj).css("background-color","#ccc");
}
function m2(obj){
$(obj).css("background-color","white");
}
function m3(obj){
//选中 把自己添加到输入框中
var text=$(obj).text();
$("#tid").val(text);
$("#did").empty();
$("#did").hide();
} </script>

后端返回给前端的内容在$.post这个Ajax请求的第三个参数function(data)的data中

data的数据交换格式是json

json有数组[value,value ]和对象{"key":value,"key":value }两种形式 其中value可以为任意类型,所以就出现了各种千变万化的组合,解析的时候看外层 (使用json-lib jar包)

后端

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// 编码
response.setContentType("text/html;charset=utf-8");
// 获取name参数
String name = request.getParameter("name");
// 调用service查询相关
List<KeyWord> keys = new KeyWordservice().findByName(name);
// 写回去给你
for (KeyWord key : keys) {
System.out.println(key);
}
JSONArray key_json = JSONArray.fromObject(keys);
System.out.println(key_json);
response.getWriter().print(key_json.toString());
} catch (SQLException e) {
e.printStackTrace();
response.getWriter().print("");
}
}

Ajax判断用户名存在核心代码(使用JQuery)

 <script>

     //页面加载
$(function(){
$("#errorId").hide();
$("#successId").hide(); $("#username").blur(function(){
$("#errorId").hide();
$("#successId").hide();
//获得值
var username = $("#username").val(); if(username){
//ajax访问服务器
$.get("${pageContext.request.contextPath}/CheckUserNameServlet","username="+username,function(data){
if(data>0){
//失败
$("#errorId").show();
$("#successId").hide();
}else{
//成功
$("#errorId").hide();
$("#successId").show();
}
});
}
});
}) </script>
     <div class="form-group">
<label for="username" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名">
</div>
<div class="col-sm-4">
<span id="successId" class="label label-success">用户名可用</span>
<span id="errorId" class="label label-danger">用户名不可用</span>
</div>
</div>

附:原生js的Ajax代码

    <input type="button" onclick="sendGet()" value="请求"/> <br/>

    <script type="text/javascript">
function sendGet(){ //1 获得ajax引擎
var xmlhttp=null;
// 谷歌、火狐、IE最新浏览器
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if (window.ActiveXObject){
//IE老版本浏览器(IE6、7、8 等)
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} //2 设置回调函数
xmlhttp.onreadystatechange = function(){ alert(xmlhttp.readyState);
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
alert("响应数据" + xmlhttp.responseText);
}
}
};
//3 确定请求方式、路径及参数
/* xmlhttp.open("GET","/2level_daan/hello?username=jack&password=1234"); */
xmlhttp.open("POST","/2level_daan/hello"); //4 设置请求编码
xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");//get 不需要 //4 发送请求
/* xmlhttp.send(null); */
xmlhttp.send("username=杰克&password=1234"); }
</script>

Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释的更多相关文章

  1. AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 最大的 ...

  2. [javascript]原生js实现Ajax

    一.首先看JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataType: '', data: { }, success: function(){ }, err ...

  3. 原生js实现Ajax的原理。

    Ajax(Asynchronous JavaScript and XML)表示异步的js与xml. 有别于传统web的同步开发方式. 原理:通过XMLHttpRequest对象向服务器发送异步请求,从 ...

  4. Ajax工作原理和原生JS的ajax封装

    前言: 之所以用ajax作为博客的开篇,是因为无论从ajax的出现还是从它的作用上来说,ajax对于前端无疑是意义重大的.甚至可以说,是ajax带来了前端这个行业.当然,历史并不能说明当下,曾经的辉煌 ...

  5. 原生js实现ajax封装

    一.什么是ajax? 定义:Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并 ...

  6. 用原生js实现ajax、jsonp

    转载: http://www.cnblogs.com/yangheng/p/6065910.html 一.原生js实现ajax $.ajax({ url: '', type: 'post', data ...

  7. 原生JS发送Ajax请求、JSONP

    一.JS原生Ajax Ajax=异步Javascript+XML: ajax是一种数据请求的方式,不需要刷新整个页面.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ajax的核心 ...

  8. 原生JS实现Ajax及Ajax的跨域请求

      前  言          如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. ...

  9. 原生js实现ajax与jquery的ajax库,及json

    这是一篇笔记博客, Ajax: 和服务器进行数据交换(异步) 用js实现复杂的原理:用于发送请求的对象在不同的浏览器中是不同的 同源策略:ajax发送请求的url地址与服务器地址必须是同一域名,协议, ...

随机推荐

  1. SmartRF Flash Programmer突然打不开显示界面的办法【亲测有效】

    在尝试打开任务管理器结束任务之后重新打开依然无果,在尝试了SmartRF Flash Programmer卸载重装无数次之后依然无果的况状,我被SmartRF Flash Programmer存在界面 ...

  2. LeetCode 167.两数之和(C++)

    给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的下标值 ...

  3. HDU 2819 ——Swap——————【最大匹配、利用linker数组、邻接表方式】

     Swap Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  4. 零基础逆向工程34_Win32_08_线程控制_CONTEXT结构

    线程控制 实验 挂起线程 ::SuspendThread(hThread); 恢复线程 ::ResumeThread(hThread); 终止线程 (这里讲了同步调用与异步调用) 方式一: 此方法结束 ...

  5. Cloud Computing

    More numbers, More power. We waste much more every day. Everything can be connectible through specia ...

  6. Linux 下, 安装Android Studio

    Download the Android Package of Linux from Android Studio, android-studio-bundle-130.737825-linux.tg ...

  7. Android环信即时通讯集成坑爹 注册报错208解决

    第一种情况:    你用的环信APPkey 是授权模式的   只要改成开放模式就可以了 第二种情况:    上述情况在环信官网都有说明  但是这种情况  环信官网就没得说明   只说的是同步方法 注册 ...

  8. Appium 滑动界面swipe用法

    Appium 滑动API:Swipe(int start x,int start y,int end x,int y,duration) 解释:int start x-开始滑动的x坐标, int st ...

  9. tcpdump确认服务器连接的交换机信息

    Displaying CDP info via tcpdump or snoop Cisco Discovery Protocol is a management protocol that Cisc ...

  10. Linux命令之创建文件夹3

    1)mkdir  fyr即可在当前目录下创建一个文件夹 2)在fyr文件夹下创建一个子目录 mkdir fyr/fyr1 注意:如果不存在父层目录直接创建对应父层目录下的子目录mkdir  FYR/f ...