最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AJAX Servlet實現(xiàn)數(shù)據(jù)異步交互的方法

 更新時間:2017年07月06日 14:25:02   作者:Loger丶  
本篇文章主要介紹了AJAX Servlet實現(xiàn)數(shù)據(jù)異步交互的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在慕課網(wǎng)上看了AJAX的一些教程,自己參考著實現(xiàn)一下!

首先,導入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() {
    //對于大多數(shù)瀏覽器適用
    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;
  }
  
  //回調函數(shù)
  function callback() {
    //4代表完成
    if(xmlHttp.readyState == 4){
      //200代表服務器響應成功,404代表資源未找到,500服務器內部錯誤
      if(xmlHttp.status == 200){
        //交互成功獲得響應的數(shù)據(jù),是文本格式
        var result = xmlHttp.responseText;
        //解析獲得的數(shù)據(jù)
        var json = eval("("+ result +")");
        //獲得數(shù)據(jù)之后,就可以動態(tài)的顯示數(shù)據(jù)了,把數(shù)據(jù)顯示到輸入框下面
        alert(json);
      }
    }
  }
  
  //獲得輸入框的內容
  function getContents(){
    //首先獲得用戶的輸入內容,這里獲得的是一個結點
    var content = document.getElementById("keyword");
    if(content.value ==""){
      return;
    }
    
    //向服務器發(fā)送內容,用到XmlHttp對象
    xmlHttp = createXMLHttp();
    //給服務器發(fā)送數(shù)據(jù),escape()不加中文會有問題
    var url = "search?keyword=" + escape(content.value);
    //true表示js的腳本會在send()方法之后繼續(xù)執(zhí)行而不會等待來自服務器的響應
    xmlHttp.open("GET",url,true);
    //xmlHttp綁定回調方法,這個方法會在xmlHttp狀態(tài)改變的時候調用,xmlHttp狀態(tài)有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() {
    //對于大多數(shù)瀏覽器適用
    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;
  }
  
  //回調函數(shù)
  function callback() {
    //4代表完成
    if(xmlHttp.readyState == 4){
      //200代表服務器響應成功,404代表資源未找到,500服務器內部錯誤
      if(xmlHttp.status == 200){
        //交互成功獲得響應的數(shù)據(jù),是文本格式
        var result = xmlHttp.responseText;
        //解析獲得的數(shù)據(jù)
        var json = eval("("+ result +")");
        //獲得數(shù)據(jù)之后,就可以動態(tài)的顯示數(shù)據(jù)了,把數(shù)據(jù)顯示到輸入框下面
        alert(json);
      }
    }
  }
  
  //獲得輸入框的內容
  function getContents(){
    //首先獲得用戶的輸入內容,這里獲得的是一個結點
    var content = document.getElementById("keyword");
    if(content.value ==""){
      return;
    }
    
    //向服務器發(fā)送內容,用到XmlHttp對象
    xmlHttp = createXMLHttp();
    //給服務器發(fā)送數(shù)據(jù),escape()不加中文會有問題
    var url = "search?keyword=" + escape(content.value);
    //true表示js的腳本會在send()方法之后繼續(xù)執(zhí)行而不會等待來自服務器的響應
    xmlHttp.open("GET",url,true);
    //xmlHttp綁定回調方法,這個方法會在xmlHttp狀態(tài)改變的時候調用,xmlHttp狀態(tài)有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");
    
    //首先獲得客戶端發(fā)送來的數(shù)據(jù)
    String keyword = request.getParameter("keyword");
    System.out.println(keyword);
    
    
    
    //返回json數(shù)據(jù)
    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的實現(xiàn)步驟,其他在頁面上把內容顯示出來,如輸入驗證碼時在旁邊實時提示是否正確等操作,通過JS實現(xiàn)即可,由于本人沒怎么學過js,就這樣子吧!??!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java如何使用elasticsearch進行模糊查詢

    Java如何使用elasticsearch進行模糊查詢

    這篇文章主要介紹了Java如何使用elasticsearch進行模糊查詢,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java JVM內存區(qū)域詳解

    Java JVM內存區(qū)域詳解

    下面小編就為大家?guī)硪黄趈vm java內存區(qū)域的介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • 聊聊java變量的初始化之后的默認值

    聊聊java變量的初始化之后的默認值

    這篇文章主要介紹了聊聊java變量的初始化之后的默認值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java實現(xiàn)word轉pdf并在關鍵字位置插入圖片

    Java實現(xiàn)word轉pdf并在關鍵字位置插入圖片

    這篇文章主要為大家詳細介紹了如何利用Java實現(xiàn)word轉pdf,并在word中關鍵字位置插入圖片,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • Java的JSON轉換庫GSON的基本使用方法示例

    Java的JSON轉換庫GSON的基本使用方法示例

    GSON是Google制作的一個可以讓Java對象與JSON互相轉換的類庫,下面我們就來看一下Java的JSON轉換庫GSON的基本使用方法示例:
    2016-06-06
  • 一文讀懂Spring Bean的生命周期

    一文讀懂Spring Bean的生命周期

    今天我們來說一說 Spring Bean 的生命周期,小伙伴們應該在面試中經(jīng)常遇到,這是正常現(xiàn)象,本文讓更多的小伙伴們可以輕松的讀懂 Spring Bean 的生命周期
    2023-03-03
  • Java日志API管理最佳實踐詳解

    Java日志API管理最佳實踐詳解

    這篇文章主要介紹了Java日志API管理最佳實踐詳解,記錄日志只是有效地利用日志的第一步,更重要的是如何對程序運行時產(chǎn)生的日志進行處理和分析。,需要的朋友可以參考下
    2019-06-06
  • MyBatis中操作類對象的實現(xiàn)

    MyBatis中操作類對象的實現(xiàn)

    在MyBatis框架中,操作類對象是用于執(zhí)行數(shù)據(jù)庫操作的核心對象,本文主要介紹了MyBatis中操作類對象的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Java中Synchronized的用法解析

    Java中Synchronized的用法解析

    synchronized是Java中的關鍵字,是一種同步鎖,本文給大家詳細介紹Java Synchronized 用法大全,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • MyBatis-Plus 分頁插件配置的兩種方式實現(xiàn)

    MyBatis-Plus 分頁插件配置的兩種方式實現(xiàn)

    本文主要介紹了MyBatis-Plus 分頁插件配置的兩種方式實現(xiàn),包括使用PaginationInterceptor和MybatisPlusInterceptor兩種方式,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03

最新評論

翼城县| 德保县| 通辽市| 巴楚县| 安塞县| 石门县| 汝阳县| 荆门市| 太康县| 乐平市| 太康县| 深圳市| 高邮市| 綦江县| 河曲县| 遂川县| 舟曲县| 淮安市| 宁陵县| 都兰县| 隆尧县| 东安县| 漠河县| 武陟县| 哈巴河县| 浦北县| 巨鹿县| 涞水县| 冕宁县| 山丹县| 湟源县| 开封市| 赣州市| 苍梧县| 宁海县| 梧州市| 肇庆市| 广东省| 辽阳市| 土默特左旗| 和硕县|