在慕课网上看了AJAX的一些教程,自己参考着实现一下!

首先,导入json所需要的6个包
下载链接:JSONObjectjar_jb51.rar
总的目录:
前端页面:
首先是一个输入框:
<input type="text" id="keyword" name="keyword" onkeyup="getContents()">
onkeyup表示按下键盘时的操作
javascript:
<script type="text/javascript">
//全局xmlHttp对象
var xmlHttp;
//获得xmlHttp对象
function createXMLHttp() {
//对于大多数浏览器适用
var xmlHttp;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
//考虑浏览器的兼容性
if (window.ActiveXObject) {
xmlHttp = new ActiveXOject("Microsoft.XMLHTTP");
if (!xmlHttp) {
xmlHttp = new ActiveXOject("Msxml2.XMLHTTP");
}
}
return xmlHttp;
}
//回调函数
function callback() {
//4代表完成
if(xmlHttp.readyState == 4){
//200代表服务器响应成功,404代表资源未找到,500服务器内部错误
if(xmlHttp.status == 200){
//交互成功获得响应的数据,是文本格式
var result = xmlHttp.responseText;
//解析获得的数据
var json = eval("("+ result +")");
//获得数据之后,就可以动态的显示数据了,把数据显示到输入框下面
alert(json);
}
}
}
//获得输入框的内容
function getContents(){
//首先获得用户的输入内容,这里获得的是一个结点
var content = document.getElementById("keyword");
if(content.value ==""){
return;
}
//向服务器发送内容,用到XmlHttp对象
xmlHttp = createXMLHttp();
//给服务器发送数据,escape()不加中文会有问题
var url = "search?keyword=" + escape(content.value);
//true表示js的脚本会在send()方法之后继续执行而不会等待来自服务器的响应
xmlHttp.open("GET",url,true);
//xmlHttp绑定回调方法,这个方法会在xmlHttp状态改变的时候调用,xmlHttp状态有0-4,
//我们只关心4,4表示完成
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
</script>
总的index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//全局xmlHttp对象
var xmlHttp;
//获得xmlHttp对象
function createXMLHttp() {
//对于大多数浏览器适用
var xmlHttp;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
//考虑浏览器的兼容性
if (window.ActiveXObject) {
xmlHttp = new ActiveXOject("Microsoft.XMLHTTP");
if (!xmlHttp) {
xmlHttp = new ActiveXOject("Msxml2.XMLHTTP");
}
}
return xmlHttp;
}
//回调函数
function callback() {
//4代表完成
if(xmlHttp.readyState == 4){
//200代表服务器响应成功,404代表资源未找到,500服务器内部错误
if(xmlHttp.status == 200){
//交互成功获得响应的数据,是文本格式
var result = xmlHttp.responseText;
//解析获得的数据
var json = eval("("+ result +")");
//获得数据之后,就可以动态的显示数据了,把数据显示到输入框下面
alert(json);
}
}
}
//获得输入框的内容
function getContents(){
//首先获得用户的输入内容,这里获得的是一个结点
var content = document.getElementById("keyword");
if(content.value ==""){
return;
}
//向服务器发送内容,用到XmlHttp对象
xmlHttp = createXMLHttp();
//给服务器发送数据,escape()不加中文会有问题
var url = "search?keyword=" + escape(content.value);
//true表示js的脚本会在send()方法之后继续执行而不会等待来自服务器的响应
xmlHttp.open("GET",url,true);
//xmlHttp绑定回调方法,这个方法会在xmlHttp状态改变的时候调用,xmlHttp状态有0-4,
//我们只关心4,4表示完成
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
</script>
</head>
<body>
<input type="text" id="keyword" name="keyword" onkeyup="getContents()">
</body>
</html>
后端:
AjaxServlet.java
package com.loger.servlet;
import java.io.IOException;
import java.util.ArrayList;
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 net.sf.json.JSONArray;
/**
* Servlet implementation class AjaxServlet
*/
@WebServlet("/search")
public class AjaxServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
static List<String> list = new ArrayList<>();
static{
list.add("chenle");
list.add("陈乐");
}
/**
* @see HttpServlet#HttpServlet()
*/
public AjaxServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//首先获得客户端发送来的数据
String keyword = request.getParameter("keyword");
System.out.println(keyword);
//返回json数据
response.getWriter().write(JSONArray.fromObject(list).toString());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
运行结果:
这就是AJAX的实现步骤,其他在页面上把内容显示出来,如输入验证码时在旁边实时提示是否正确等操作,通过JS实现即可,由于本人没怎么学过js,就这样子吧!!!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# AJAX
# Servlet异步交互
# 数据异步交互
# layui实现数据分页功能(ajax异步)
# layui实现数据表格table分页功能(ajax异步)
# 关于Ajax异步请求后台数据进行动态分页功能
# jquery ajax异步提交表单数据的方法
# vue.js 表格分页ajax 异步加载数据
# 关于ajax异步访问数据的问题
# 会在
# 输入框
# 回调
# 的是
# 会有
# 不加
# 绑定
# 就可以
# 未找到
# 是一个
# 看了
# 他在
# 这就是
# 按下
# 在旁边
# 这样子
# 验证码
# 所需要
# 下载链接
# 学过
相关文章:
建站主机与服务器功能差异如何区分?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
高防服务器如何保障网站安全无虞?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
Swift中switch语句区间和元组模式匹配
深圳网站制作的公司有哪些,dido官方网站?
定制建站是什么?如何实现个性化需求?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
建站之星免费版是否永久可用?
建站之星CMS五站合一模板配置与SEO优化指南
javascript基本数据类型及类型检测常用方法小结
建站之星导航如何优化提升用户体验?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
实现虚拟支付需哪些建站技术支撑?
网站制作话术技巧,网站推广做的好怎么话术?
如何在万网主机上快速搭建网站?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
建站VPS能否同时实现高效与安全翻墙?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
如何通过wdcp面板快速创建网站?
小型网站建站如何选择虚拟主机?
如何解决VPS建站LNMP环境配置常见问题?
建站之星安装后界面空白如何解决?
如何彻底删除建站之星生成的Banner?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
全景视频制作网站有哪些,全景图怎么做成网页?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
建站为何优先选择香港服务器?
,如何利用word制作宣传手册?
高端企业智能建站程序:SEO优化与响应式模板定制开发
建站之星官网登录失败?如何快速解决?
如何用y主机助手快速搭建网站?
如何在景安云服务器上绑定域名并配置虚拟主机?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何在建站之星网店版论坛获取技术支持?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
建站之星如何实现五合一智能建站与营销推广?
平台云上自助建站如何快速打造专业网站?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
招贴海报怎么做,什么是海报招贴?
h5在线制作网站电脑版下载,h5网页制作软件?
网站制作员失业,怎样查看自己网站的注册者?
建站之星代理费用多少?最新价格详情介绍
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何确认建站备案号应放置的具体位置?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。