1、无刷新:不刷新整个页面,只刷新局部
2、无刷新的好处: 只更新部分页面,有效利用带宽,提高用户体验
二、什么是Ajax?Ajax:只刷新局部页面的技术
1、JavaScript:更新局部的网页
2、XML:一般用于请求数据和响应数据的封装
3、XMLHttpRequest对象:发送请求到服务器并获得返回结果
4、CSS:美化页面样式 异步:发送请求后不等返回结果,由回调函数处理结果
jQuery.ajax(url,[settings])通过 HTTP 请求加载远程数据。
一、$.ajax() :
| 常用参数 | 说 明 |
| url | 一个用来包含发送请求的URL字符串(请求地址) |
| type | 请求方式 (“POST” 或 “GET“[默认]) |
| data | 发送到服务器的数据(参数) |
| dataType | 预期服务器返回的数据类型(xml、json、text) |
| success(data) | 请求成功的回调函数 |
| error | 请求失败的回调函数 |
1、通过远程 HTTP POST 请求载入信息。
这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
一、$.post()
| 常用参数 | 说 明 |
| url | 一个用来包含发送请求的URL字符串(请求地址) |
| data | 发送到服务器的数据(参数) key/value |
| success(data) | 请求成功的回调函数 |
| type | 返回内容格式(xml、json、text等) |
1.将集合变成字符串
String str=JSON.toJSONString(ls); //ls为集合
2.将字符串变成集合
--使用js的eval()方法
--使用jQuery的$.parseJSON()
代码如下:
Servlet包:
package com.zking.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/vname.do")
public class VNameServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码方式
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=UTF-8");
//获取out
PrintWriter out = resp.getWriter();
//接收客户端传递过来的参数
String name = req.getParameter("sname");
//调用biz层判断name是否存在
//select * from 用户名 where uname=? 建议返回boolean
//假设法: 假设数据表中存在admin这个用户了
String str="该用户名可用";//可用
if("admin".equals(name)) {
str="该用户名已存在";//已存在
}
//由于需要局部刷新 不可用转发 重定向 location.href
//把响应输送到客户端
out.write(str);//写
out.flush();//刷新
out.close();//关闭
}
}
package com.zking.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.zking.dao.UserDao;
import com.zking.entity.User;
@WebServlet("/autoFill.do")
public class AutoFillServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码方式
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=UTF-8");
//获取out
PrintWriter out = resp.getWriter();
//接收客户端传递过来的参数
String name = req.getParameter("sname");
//调用biz层的模糊查询的方法
//错误示范 模拟数据
UserDao ud=new UserDao();
List ls=ud.getAll(name);
//怎么把集合-->json字符串
//将集合解析成字符串
String str = JSON.toJSONString(ls);
//由于需要局部刷新 不可用转发 重定向 location.href
//把响应输送到客户端
out.write(str);//写
out.flush();//刷新
out.close();//关闭
}
}
jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
使用jQuery的ajax+json实现搜索自动提示功能
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
使用jQuery的ajax即时判断用户名是否可用



