jQuery Ajax前后端使用JSON进行交互示例


Posted in Javascript onMarch 17, 2017

需求:

前端通过jQuery Ajax传输json到后端,后端接收json,对json进行处理,后端返回一个json给前端

这里使用servlet的方式

1、采用$.post方法

index.jsp页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<%@ page contentType="text/html; charset=UTF-8"%> 
<html> 
<head> 
<title></title> 
<script src="js/jquery-1.12.2.js"></script> 
<script language="JavaScript"> 
  function checkUserid() { 
    $.post('Ajax/CheckServlet',//url 
    { 
      userid : $("#userid").val(), 
      sex : "男" 
    }, function(data) { 
      var obj = eval('(' + data + ')'); 
      alert(obj.success); 
    }); 
  } 
</script> 
</head> 
<body> 
  用户ID: 
  <input type="text" id="userid" name="userid"> <span id="msg"></span> 
  <br> <button onclick="checkUserid()">传输</button> 
</body> 
</html>

CheckServlet.Java代码如下

package com.ajax; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class CheckServlet extends HttpServlet { 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    this.doPost(request, response); 
  } 
 
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    /*设置字符集为'UTF-8'*/ 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8"); 
    String userid = request.getParameter("userid"); // 接收userid 
    String sex = request.getParameter("sex");//接收性别 
    System.out.println(userid); 
    System.out.println(sex); 
 
    //写返回的JSON 
    PrintWriter pw = response.getWriter(); 
    String json = "{'success':'成功','false':'失败'}"; 
    pw.print(json); 
    pw.flush(); 
    pw.close(); 
 
  } 
}

由于这里采用的是servlet的方式,所以要配置web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
  id="WebApp_ID" version="3.1"> 
  <display-name>Ajax</display-name> 
 
  <servlet> 
    <servlet-name>CheckServlet</servlet-name> 
    <servlet-class>com.ajax.CheckServlet</servlet-class> 
  </servlet> 
  <servlet-mapping> 
    <servlet-name>CheckServlet</servlet-name> 
    <url-pattern>/Ajax/CheckServlet</url-pattern> 
  </servlet-mapping> 
</web-app>

在页面输入一个ID,可以在后台接收到并且打印出来,后台通过PrintWriter进行回写JSON返回前端,前端通过eval将JSON变换为Object对象,通过obj.name获取JSON值

2、采用$.get方法,只需要将jsp页面里面的post改为get即可

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<%@ page contentType="text/html; charset=UTF-8"%> 
<html> 
<head> 
<title></title> 
<script src="js/jquery-1.12.2.js"></script> 
<script language="JavaScript"> 
  function checkUserid() { 
    $.get( 
      'Ajax/CheckServlet',//url 
      { 
        userid:$("#userid").val(), 
        sex:"男" 
      }, 
      function(data){ 
        var obj = eval('('+data+')'); 
        alert(obj.success); 
      } 
    ); 
  } 
</script> 
</head> 
<body> 
 
  用户ID: 
  <input type="text" id="userid" name="userid"> <span id="msg"></span> 
    <br> 
      <button onclick="checkUserid()">传输</button> 
</body> 
</html>

结果与$.post一样

3、通过$.ajax方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<%@ page contentType="text/html; charset=UTF-8"%> 
<html> 
<head> 
<title></title> 
<script src="js/jquery-1.12.2.js"></script> 
<script language="JavaScript"> 
  function checkUserid() { 
    $.ajax({ 
      type : 'post', 
      data : { 
        userid : $("#userid").val(), 
        sex : "男" 
      }, 
      url : "Ajax/CheckServlet", 
      success : function(data) { 
        var obj = eval('(' + data + ')'); 
      alert(obj.success); 
      }, 
      error : function() { 
      }, 
      complete : function() { 
      } 
    }); 
  } 
</script> 
</head> 
<body> 
 
  用户ID: 
  <input type="text" id="userid" name="userid"> <span id="msg"></span> 
    <br> 
      <button onclick="checkUserid()">传输</button> 
</body> 
</html>

$.ajax方法也是可以分为post和get方法的,通过修改type来修改发送的方式

结果与方法1是相同的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
lib.utf.js
Aug 21 Javascript
传递参数的标准方法(jQuery.ajax)
Nov 19 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
Javascript中innerHTML用法实例分析
Jan 12 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
Aug 01 Javascript
jQuery EasyUI Tab 选项卡问题小结
Aug 16 Javascript
React Native实现地址挑选器功能
Oct 24 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
JS实现的input选择图片本地预览功能示例
Aug 29 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
js里面的变量范围分享
Jul 18 Javascript
JavaScript文档对象模型DOM
Nov 20 Javascript
Bootstrap表格制作代码
Mar 17 #Javascript
鼠标经过出现气泡框的简单实例
Mar 17 #Javascript
angularJS之$http:与服务器交互示例
Mar 17 #Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 #Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 #Javascript
Bootstrap模态框(Modal)实现过渡效果
Mar 17 #Javascript
详解Vue.js入门环境搭建
Mar 17 #Javascript
You might like
星际原理概述
2020/03/04 星际争霸
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
理解JavaScript的prototype属性
2012/02/11 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
python中List的sort方法指南
2014/09/01 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
python reduce 函数使用详解
2017/12/05 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
pycharm快捷键汇总
2020/02/14 Python
python 贪心算法的实现
2020/09/18 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
个人思想理论学习的自我鉴定
2013/11/30 职场文书
《荷花》教学反思
2014/04/16 职场文书
颐和园导游词
2015/01/30 职场文书
特此通知格式
2015/04/27 职场文书
运动会主持人开幕词
2016/03/04 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python