因工作需要,

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. C#学习笔记10:Try-catch的用法和引用类型、值类型整理

    Try-Catch: 将可能发生异常的代码放到try中,在catch中进行捕获. 如果try中有一行代码发生了异常,那么这行代码后面的代码不会再被执行了. Try写完了以后,紧接着就要写Catch   ...

  2. 修改ckeditor/ckfinder上传文件文件夹 路径以日期格式命名

    修改/ckfinder/config.ascx文件: string dateDir = DateTime.Today.ToString("yyyyMM/"); ResourceTy ...

  3. Install GTK in Ubuntu

    reference: http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html 一.安装 1.安装gcc/g++/gdb/make 等 ...

  4. JDBC向oracle插入数据

    public static void main(String[] args) throws SQLException { 2 3 4 String driver="oracle.jdbc.d ...

  5. Oracle之初始创建scott/tiger来测试

    在redhat5.5(32bit)上安装好oracle11g数据库软件,然后安装一个数据库,再然后登录数据库,创建scott/tiger测试 首先登录数据库,这里登录时是没有启动数据库的 [oracl ...

  6. 折腾ghost。。。

    1.启动 NODE_ENV=production node index.js 如果出现启动不了的情况,在该命令加sudo sudo NODE_ENV=production node index.js ...

  7. java新手笔记26 Frame

    0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...

  8. Sicily 1510欢迎提出优化方案

    这道题我觉得是除1000(A-B)外最简单的题了……不过还是提出一个小问题:在本机用gcc编译的时候我没包括string.h头文件,通过编译,为什么在sicily上却编译失败? 1510. Mispe ...

  9. mysql密码忘记后重置密码

    之前在centOS里安装了xampp,设置了mysql数据库root密码,今天需要增加个数据库,发现忘记之前设置的密码是什么了.经过一番摸爬滚打,终于搞明白了,注意以下的操作都是以linux的root ...

  10. Flexbox完整指南- A Complete Guide to Flexbox

    背景 Flexbox 布局 (FLexible Box)模块(现在处于W3C的最终征求意见稿(Last Call Working Draft)阶段)意在提供一个更为有效的方式来进行布局.对齐和分配一个 ...