因工作需要,

1,后台向前台传递一个list

2,前台向后台传递类似于list的结构,但是因为javascript不支持list类型,所以只能使用二维数组代替

后台运行后的截图:                                                                前台运行后的截图:

                                                   

后台代码(TestJson.java)

package com.zm.servlet;  

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class TestJson extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { System.out.println("into doPost"); response.setContentType("text/html");
String sName= request.getParameter("name");//得到ajax传递过来的paramater
System.out.println(sName); //String sTicketId= request.getParameter("ticketId");//得到ajax传递过来的paramater
//System.out.println(sTicketId); try {
String[] sTicketIds = request.getParameterValues("ticketId[]");
if(sTicketIds !=null){
for(String sTicketId:sTicketIds){
System.out.println(sTicketId);
}
}else{
System.out.println("获取数组参数失败!");
}
} catch (Exception e) {
e.printStackTrace();
} PrintWriter printWriter = response.getWriter();
List list = new ArrayList();//传递List Map m=new HashMap();//传递Map
User u1=new User();
u1.setUsername("zah");
u1.setPassword("123");
User u2=new User();
u2.setUsername("ztf");
u2.setPassword("456");
list.add(u1); //添加User对象
list.add(u2); //添加User对象 m.put("u1", u1);
m.put("u2", u2); JSONArray jsonArray2 = JSONArray.fromObject( list );
//把java数组转化成转化成json对象
//JSONObject jsonObject =JSONObject.fromObject(m);//转化Map对象
printWriter.print(jsonArray2);//返给ajax请求
//printWriter.print(jsonObject);//返给ajax请求
printWriter.flush();
printWriter.close();
System.out.println("finish");
}
}

前台代码(first.jsp)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="jQuery/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function test2(){
var ticketId = new Array();
for(var i = 0; i < 5; i++) {
ticketId.push(i);
}
$.ajax({
type:"POST", //请求方式
url:"./testJson", //请求路径
cache: false,
data:{//传参
"name":"zhang3",
"ticketId":ticketId,
},
dataType: 'json', //返回值类型
success:function(json){
alert(json[0].username+" " + json[0].password); //弹出返回过来的List对象
alert(json[1].username+" " + json[1].password); //弹出返回过来的List对象
}
});
}
</script>
</head> <body>
<input type="button" name="b" value="TestJson" onclick="test2()"/>
<input type="button" value="download file" onclick="DownURL('333.js','d:/555.js')"/>
</body> </html>

web.xml

    <!-- 测试jquery json-->
<servlet>
<servlet-name>testJson</servlet-name>
<servlet-class>com.zm.servlet.TestJson</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testJson</servlet-name>
<url-pattern>/testJson</url-pattern>
</servlet-mapping>

 

servlet向ajax传递list数据类型,ajax向servlet传递array数据类型的更多相关文章

  1. echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端

    1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小de ...

  2. Ajax(6) Ajax向servlet请求数据库操作 并显示到当前页面 这个未经测试

    假设:1.你的页面在Web-Root下,内容为: <div id="showMsg"></div><input type="text&quo ...

  3. 弄一个ajax笔记方便查询-$.ajax()

    $.ajax()是所有ajax方法中最底层的方法,所有其他方法都是基于$.ajax()方法的封装.这个方法只有一个参数,传递一个各个功能键值对的对象. $.ajax()方法对象参数表: 参数 类型 说 ...

  4. PHP. 03 .ajax传输XML、 ajax传输json、封装

    XML简介 XML 指可扩展标记语言 EXtensible Markup Language .射击的时候是用来船体数据的,虽然格式跟HTML类似 xml示例 <?xml version=&quo ...

  5. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    $.ajax()方法详解   jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...

  6. jQuery Ajax(load,post,get,ajax)

    1.load(url, [data], [callback]) 载入远程 HTML 文件代码并插入至 DOM 中. 默认使用 GET 方式 - 传递附加参数时自动转换为 POST 方式.jQuery ...

  7. Ajax作用、及Ajax函数的编写

    关于Ajax 指的是异步 (Asynchronous JavaScript and XML) <异步的javascript和XML> 1. Ajax并非缩写词,而是由Jesse James ...

  8. Ajax详解及其案例分析------如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表

    本节主要内容预览: 1 获得Ajax对象 2 使用Ajax对象发送GET请求 3 使用Ajax对象发送POST请求 4 使用Ajax校验用户名 5 POST请求时的乱码处理 6 GET请求时的乱码处理 ...

  9. AJAX(二)AJAX框架

    上文(AJAX(一)AJAX的简介和基础)对ajax异步请求服务器做了详细的介绍和基础应用,可以看出,ajax的一些过程是相对不变的.不必要每次发送请求都写一遍发送代码,一些ajax开发人员已经把他们 ...

随机推荐

  1. GIT学习(二)

    学习地址: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 常用git命令: 1. ...

  2. UIButton 按钮文字左对齐

    btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; btn.titleEdgeInsets = UIEd ...

  3. ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

    http://wandering192.iteye.com/blog/758954 谢谢作者

  4. Java JDK1.5、1.6、1.7新特性整理(转)

    原文链接:http://www.cnblogs.com/tony-yang-flutter/p/3503935.html 一.Java JDK1.5的新特性 1.泛型: List<String& ...

  5. IO流01_File类

    [分类] Java的IO通过java.io包下的类和接口来支持. 1.按照流向: 输入流     输出流 2.按照操作数据的大小: 字节流( 8位字节 )     字符流( 16位字节 ) 3.按照角 ...

  6. poj代码搬家啦啦啦

    我的poj代码搬家啦,大家想看可以到 blog.csdn.net/michaelysm 来看.欢迎哦

  7. java.util.Hashtable源码分析

    Hashtable实现一个键值映射的表.任何非null的object可以用作key和value. 为了能存取对象,放在表里的对象必须实现hashCode和equals方法. 一个Hashtable有两 ...

  8. JavaScript 继承的几种模式

    /** * Created by 2016 on 2016/6/5. */ //1.原型链继承 //把子类的原型,定义为超类的实例 通过原型来访问超类的方法和属性 function Person(){ ...

  9. win7下 mysql主从配置实现

    win7下学习 mysql主从复制 一.环境: 主服务器(master):192.168.1.23 mysql版本:5.5 从服务器(slave):192.168.1.24 mysql版本:5.5   ...

  10. 【转】怎样将DataGridView中绑定的表的列名改成中文

    在DataGridView设置数据源绑定后,设置DataGridView的属性HeaderText就可以了.代码参考: dataGridView.Columns[filedName].HeaderTe ...