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 相关文章推荐
告诉大家什么是JSON
Jun 10 Javascript
Extjs学习笔记之六 面版
Jan 08 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
浅谈Node Inspector 代理实现
Oct 19 Javascript
关于Vue单页面骨架屏实践记录
Dec 13 Javascript
微信小程序学习笔记之本地数据缓存功能详解
Mar 29 Javascript
微信小程序云开发(数据库)详解
May 17 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php实现分页工具类分享
2014/01/09 PHP
学习PHP session的传递方式
2016/06/15 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Python实现识别手写数字大纲
2018/01/29 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
django页面跳转问题及注意事项
2019/07/18 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python判断元素是否存在的实例方法
2020/09/24 Python
银行实习鉴定
2013/12/13 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
英语系毕业生求职信
2014/07/13 职场文书
保研导师推荐信
2015/03/25 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
安全教育主题班会总结
2015/08/14 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python
python小型的音频操作库mp3Play
2022/04/24 Python