目录

一、为什么使用ajax

二、什么是ajax

三、案例


1、为什么使用ajax

无刷新:不刷新整个页面,只刷新局部

无刷新的好处 只更新部分页面,有效利用带宽,提高用户体验

2.什么是ajax

只刷新局部页面的技术

JavaScript:更新局部的网页

XML:一般用于请求数据和响应数据的封装

XMLHttpRequest对象:发送请求到服务器并获得返回结果

CSS:美化页面样式 异步:发送请求后不等返回结果,由回调函数处理结果

jQuery.ajax(url,[settings])

常用参数

说    明

url

一个用来包含发送请求的URL字符串(请求地址)

type

请求方式 (“POST” 或 “GET“[默认])

data

发送到服务器的数据(参数)

dataType

预期服务器返回的数据类型(xml、json、text)

success(data)

请求成功的回调函数

error

请求失败的回调函数

jQuery.post(url, [data], [callback], [type])

常用参数

说    明

url

一个用来包含发送请求的URL字符串(请求地址)

data

发送到服务器的数据(参数)  key/value

success(data)

请求成功的回调函数

type

返回内容格式(xml、json、text等)

3、ajax案例

 AuToFull.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">*{margin:0px;padding:0px;}#container{/* 宽度 */width:80%;/* 边框 *//* border:1px solid red; *//* 高度 */height:500px;/* 外边距  作用:居中 */margin:0 auto;/* 文本水平对其方式 */text-align: center;}#container input{width:60%;height:40px;font-size:20px;}#container button{width:60px;height:40px;}#container>#content{width:60%;border:1px solid red;height:120px; margin:0 auto;text-align: left;/* 当标签中的内容超出范围,可以使用overflow属性加滚动条 */overflow: auto;}
</style>
<!-- 通过CDN远程服务加载jQuery类库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script type="text/javascript">$(function(){$("#content").hide();//拿到输入框  失去焦点事件//keyup 按键事件$("#searchName").keyup(function(){var searchName = $(this).val();if(!searchName){$("#content").html("无记录");window.setTimeout(function(){$("#content").hide();},2000);return;}$("#content").show();//将获取的关键词传入servlet  通过ajax  post()$.post("autoFull.do",{"searchName":searchName},function(data){//由于servlet中返回出来的数据  是data   stringvar objList = $.parseJSON(data);//console.log($.type(obj))//index 下标//obj  对象  let strName = "";$.each(objList,function(index,obj){//console.log(index,obj);//name 属性名称//value 属性值strName +="<div style = 'cursor:pointer;' onmouseout = 'this.style.background=\"\"' onmouseover = 'this.style.background=\"red\"'  onclick = 'add(\""+obj.dname+"\")'>"+obj.dname+"</div>";});$("#content").html(strName);});});});</script></head>
<body><div id = "container"><input id = "searchName" type = "text"/><div id = "content"></div></div><script type="text/javascript">function add(dname){//console.log(dname);$("#searchName").val(dname);$("#content").slideUp(1000);}</script>
</body>
</html>

AutoFullServlet.java

package com.zking.jsom.test;import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.fasterxml.jackson.databind.ObjectMapper;
import com.zking.json.servlet.Diaosi;public class AutoFullServlet extends HttpServlet {// 数据访问层 业务逻辑层public List<Diaosi> queryDiaosiAll() {List<Diaosi> list = new ArrayList<Diaosi>();for (int i = 0; i < 300; i++) {if (i >= 0 && i < 100) {list.add(new Diaosi("哈哈" + i, "女", 1 + i));} else if (i >= 100 && i < 200) {list.add(new Diaosi("呵呵" + i, "女", 2 + i));} else {list.add(new Diaosi("嘻嘻" + i, "女", 3 + i));}}return list;}public List<Diaosi> queryDiaosiAll(String searchName) {// 获取所有List<Diaosi> queryDiaosiAll = queryDiaosiAll();// 创建一个新的集合保存模糊查询的结构集List<Diaosi> list = new ArrayList<Diaosi>();for (Diaosi diaosi : queryDiaosiAll) {if (diaosi.getDname().contains(searchName)) {list.add(diaosi);}}return list;}protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");// 获取搜索的关键词String searchName = request.getParameter("searchName");if (searchName == null) {searchName = "";}// 调用bizList<Diaosi> queryDiaosiAll = queryDiaosiAll(searchName);// 获取out对象PrintWriter out = response.getWriter();// 因为out对象中只能传递字符串类型以及其它基本类型// 需要将模糊查询的结果集转换成字符串(满足JSON格式)ObjectMapper mapper = new ObjectMapper();String diaosiAll = mapper.writeValueAsString(queryDiaosiAll);out.write(diaosiAll);out.flush();out.close();}}

javaweb之ajax相关推荐

  1. JavaWeb 使用ajax上传文件并显示进度条等上传信息

    文件上传在Web程序中是常用的功能,一般上传图片或者文件大小比较少的文件客户端不需要显示上传进度或文件上传的信息,如果是上传的文件比较大的时候,可以在客户端展示文件上传进度以及根据业务的需求显示文件上 ...

  2. javaweb 之Ajax

    2019独角兽企业重金招聘Python工程师标准>>> AJAX what: 一种改善客户端体验的技术.本质上就是在客户端使用js代码,通过浏览器中一个特殊的对象(XMLHttpRe ...

  3. JavaWeb:AJAX

    1. AJAX概述 1.1 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Ja ...

  4. IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题

    2019独角兽企业重金招聘Python工程师标准>>> Ajax是"Asynchronous JavaScript And XML"的缩写(即:异步的JavaSc ...

  5. JavaWEB(AJAX实现分页)

    4.2 使用AJAX实现分页 4.2.1 需求 需要将分页数据通过ajax的方式进行分页,实现只变更部分数据的功能. 4.2.2 实现原理 1.设置Servlet的response的格式为applic ...

  6. JavaWeb开发 —— Ajax

    目录 一.介绍 二.原生Ajax 三.Axios 四.案例分析 一.介绍 ① 概念:Asynchronous JavaScript And XML,异步的JavaScript和XML. ② 作用: 数 ...

  7. 【JavaWeb】AJAX

    目录 一.AJAX概述 1.AJAX介绍 2.AJAX优点 3.AJAX工作原理 二.AJAX应用 1.AJAX快速入门 1.1.第一步:获取一个XMLHttpRequest对象 1.2.第二步:设置 ...

  8. javaWeb(七)ajax远程调用

    1.处理ajax请求的时候页面不允许跳转(默认使用的是异步请求),并且在ajax使用的时候,不能 使用el表达式 2.调用方法 $.ajax([json指令]); $.ajax({ url:" ...

  9. Javaweb(AJAX快速入门)

    中哈喽丫各位本次讲jweb的(AJAX快速入门&&AJAX实现分页) 好了直接进入主题 在进入主题前看看本次思维导图 ==========================jQuery之 ...

最新文章

  1. mac下用Dosbox搭建dos下的汇编环境
  2. linux下搭建redis并解决无法连接redis的问题
  3. EDM HTML编写建议和规范
  4. BloomFilter–大规模数据处理利器(转)
  5. 关于mvc、mvp和mvvm的理解
  6. IC设计Linux设置文件夹颜色,IC设计中常用的Linux命令
  7. SAP CRM读取产品主数据360度数据的API
  8. .net weka ikvm java
  9. pytorch可视化
  10. 病毒 Worm.Logo.g
  11. PHP报错:Malformed UTF-8 characters, possibly incorrectly encoded
  12. 使用钢片刷锡膏的一种解决方案
  13. 昆特牌显示无法连接至服务器,巫师之昆特牌总是显示无法连接网络
  14. 互联网日报 | 贾跃亭乐视网股票流拍;东航组建“三亚国际航空”;苹果线上WWDC大会22日举办...
  15. spyder中安装第三方库的包
  16. AutoJs学习-关于各种头条阅读自动赚金币的思路-实践中
  17. ptapython答案单选题_PTA:Python解答1058 选择题
  18. java基础--while循环实现A4纸折叠次数到珠穆朗玛峰高度
  19. 爬虫案例 王者荣耀 皮肤壁纸下载
  20. “Go 仅是 Google 的编程语言,而不是程序员的!”

热门文章

  1. 优质网站分享,无需下载
  2. Qt的QVector类
  3. Adaptive Context Network for Scene Parsing
  4. 【javascript】class的继承之super的使用
  5. Matlab 颜色、线型、标记符号和希腊字母表
  6. Json对象转换成Json数组
  7. mysql cast 整数_Mysql-CAST/CONVERT 类型转换函数之 整型
  8. Java的集合有什么?
  9. Linux下默认字体是什么,linux默认字体是什么
  10. Linux 运维必备 150 个命令,速度收藏~