全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

AJAX Servlet实现数据异步交互的方法

在慕课网上看了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异步访问数据的问题  # 会在  # 输入框  # 回调  # 的是  # 会有  # 不加  # 绑定  # 就可以  # 未找到  # 是一个  # 看了  # 他在  # 这就是  # 按下  # 在旁边  # 这样子  # 验证码  # 所需要  # 下载链接  # 学过 


相关文章: 相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  微信小程序 input输入框控件详解及实例(多种示例)  如何快速查询域名建站关键信息?  如何使用Golang table-driven基准测试_多组数据测量函数效率  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  香港服务器租用费用高吗?如何避免常见误区?  黑客如何通过漏洞一步步攻陷网站服务器?  如何在Windows环境下新建FTP站点并设置权限?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何在香港免费服务器上快速搭建网站?  广州美橙建站如何快速搭建多端合一网站?  如何设置并定期更换建站之星安全管理员密码?  如何基于云服务器快速搭建个人网站?  如何获取免费开源的自助建站系统源码?  如何在IIS管理器中快速创建并配置网站?  如何选购建站域名与空间?自助平台全解析  h5在线制作网站电脑版下载,h5网页制作软件?  如何通过二级域名建站提升品牌影响力?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  C#如何序列化对象为XML XmlSerializer用法  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何配置支付宝与微信支付功能?  如何快速搭建个人网站并优化SEO?  如何通过VPS建站实现广告与增值服务盈利?  如何通过FTP空间快速搭建安全高效网站?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  制作宣传网站的软件,小红书可以宣传网站吗?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  威客平台建站流程解析:高效搭建教程与设计优化方案  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  C++如何编写函数模板?(泛型编程入门)  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  免费视频制作网站,更新又快又好的免费电影网站?  学校为何禁止电信移动建设网站?  如何快速搭建虚拟主机网站?新手必看指南  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  建站之星代理如何获取技术支持?  太平洋网站制作公司,网络用语太平洋是什么意思?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何快速搭建二级域名独立网站?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  高端建站三要素:定制模板、企业官网与响应式设计优化  小建面朝正北,A点实际方位是否存在偏差?  海南网站制作公司有哪些,海口网是哪家的?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。