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 相关文章推荐
jQuery UI-Draggable 参数集合
Jan 10 Javascript
js onclick事件传参讲解
Nov 06 Javascript
简单的两种Extjs formpanel加载数据的方式
Nov 09 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
Jun 19 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
javascript笔记之匿名函数和闭包
Feb 06 Javascript
JS从非数组对象转数组的方法小结
Mar 26 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
JavaScript实现一键复制内容剪贴板
Jul 23 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 foreach、while性能比较
2009/10/15 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php中smarty区域循环的方法
2015/06/11 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
微信自定义分享php代码分析
2016/11/24 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
python中文编码问题小结
2014/09/28 Python
python调用java的jar包方法
2018/12/15 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
毕业生实习鉴定
2013/12/11 职场文书
银行实习鉴定
2013/12/13 职场文书
大学生实习证明范本
2014/01/15 职场文书
列车长先进事迹材料
2014/01/25 职场文书
英语故事演讲稿
2014/04/29 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
导游词300字
2015/02/13 职场文书
工作建议书范文
2019/07/08 职场文书
nginx lua 操作 mysql
2022/05/15 Servers