ajax 从后台传值到前台

时间:2022-11-28 23:43:31
在后台进行数据库查询后 得到数据库中的2个字段
我应该再把得到的2个字段返回前台
这个response.getWriter().write()好像不能成功
求指导

25 个解决方案

#1


要用PrintWriter类来写入吧

#2


现在一般都是用json返回数据的

#3


引用 楼主 longburulin 的回复:
在后台进行数据库查询后 得到数据库中的2个字段
我应该再把得到的2个字段返回前台
这个response.getWriter().write()好像不能成功
求指导

PrintWriter对象也是通过response.getWriter()来获取的,所以不是这个问题
二楼正解,使用json

#4


response.getWriter.print(你的对象);

#5



response.setContentType("text/html;charset=gbk");
String str = JSONArray.fromObject(lists).toString();
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();

其中红色的是一个集合,你可以把两个数据组合成集合。

List<String> lists = new ArrayList<String>();
lists.add("数据");
lists.add("数据");

前台直接

data[0]取出第一个数据,data[1]取出第二个数据

#6


你也可以把两个数据组合成对象

JSONObject  js = new JSONObject();
js.accumulate("对象变量",对象值);
response.getWriter().print(js.toString());

前台

data就是这个对象, 然后, data.getXX()就可以拿出值了

#7


推荐使用JSON,可以参考以下代码
action:
  Map<String,Object> map = new HashMap<String,Object>();
            map.put( "total",total);
           map.put( "list", list);
            json = JSONObject. fromObject(map);
            try {
                 /*设置编码格式,返回结果
                 * ***/
                response.setContentType( "text/html;charset=UTF-8");
                response.getWriter().write( json.toString());
           } catch (IOException e1) {
                e1.printStackTrace();
           }

Jsp页面中用ajax请求后台:
$.ajax(
      url:
      method:
     success:function(data){
     var list = data.list;  //获取后台list
}
);

#8


requset.setAttribute();
requset.getAttribute();

#9


一般要先转换成json格式  然后再往前台传值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

#10


引用 7 楼 qqliang1314 的回复:
您好  我没有用jQuery来写
$.ajax(
      url:
      method:
     success:function(data){
     var list = data.list;  //获取后台list
}这个我应该怎么理解 
我代码是这样的if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}
我应该在updatelist怎么利用按照您所传过来的数据呢

#11


引用 9 楼 sizhouzhou 的回复:
一般要先转换成json格式  然后再往前台传值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

您好!我还没用过json 用json之前是不是要下载什么.jar的啊 然后用 response.getWriter().write( json.toString());来传递 前台接收怎么实现啊

#12


引用 11 楼 longburulin 的回复:
Quote: 引用 9 楼 sizhouzhou 的回复:

一般要先转换成json格式  然后再往前台传值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

您好!我还没用过json 用json之前是不是要下载什么.jar的啊 然后用 response.getWriter().write( json.toString());来传递 前台接收怎么实现啊

不用jar包   用ajax接收
function getData2(){
//alert(2);
//ajax异步返回数据
$.ajax({
type:"Post",
url:"modelaction!QueryNewbet.action?aflag=2",
dataType:"json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success : function(data) {
var json=eval(data);
var result1="";
if(json.length!=0){
for(var i=0;i<json.length;i++){
 result1+="<span>用户名:"+json[i].username+"</span>&nbsp;&nbsp;<span>中奖额:"+json[i].a+".00"+"</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
 }
}
$("#luck").html(result1);
},
  error:function(){
    //alert("no2");
  }
});
}
这样需要自己布局  

#13


你可以直接放在session里 不用刚刚那个方法也行  刚刚那个是异步提交

#14


引用 5 楼 fenyeshu 的回复:
您好!前台用 response.getWriter().write(  参数);来接收么 
那参数我应该写什么啊 
能详细点指导么 万分感谢啊

#15


引用 13 楼 sizhouzhou 的回复:
你可以直接放在session里 不用刚刚那个方法也行  刚刚那个是异步提交

谢谢您的回答 但是我想尝试用一下
平时没用json的时候if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}然后在updatelist函数里面通过request.getParameter(参数)获取在后台自己建的一个字段么
如果不按照你这$.ajax(
      url:
      method:
     success:function(data){
     
}
);来获取 呢 
我在updatelist()怎么实现 
我很笨 也没有用过jQuery来着啊

#16


引用 15 楼 longburulin 的回复:
Quote: 引用 13 楼 sizhouzhou 的回复:

你可以直接放在session里 不用刚刚那个方法也行  刚刚那个是异步提交

谢谢您的回答 但是我想尝试用一下
平时没用json的时候if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}然后在updatelist函数里面通过request.getParameter(参数)获取在后台自己建的一个字段么
如果不按照你这$.ajax(
      url:
      method:
     success:function(data){
     
}
);来获取 呢 
我在updatelist()怎么实现 
我很笨 也没有用过jQuery来着啊

如果你只是单纯的两个变量 可以 定义一个隐藏标签
<input type="hidden" id="totalYeshu" value="${totalYeshu}">
<input type="hidden" id="totalNum" value="${totalNum}">
然后通过id   这样获取隐藏的值$("#totalYeshu").val()

如果是个集合 就要先获取集合 然后循环了
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>

#17


引用 16 楼 sizhouzhou 的回复:
是集合哦 问题是我应该在Javascript中怎么获取您所说的然后在我的updatelist函数里面json啊

if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}

#18


请问LZ你是想要实现什么??jsp页面显示吗?

#19


引用 18 楼 sizhouzhou 的回复:
请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

#20


引用 19 楼 longburulin 的回复:
Quote: 引用 18 楼 sizhouzhou 的回复:

请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

那何必那么麻烦,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用这个标签获取集合,遍历即可啊  如果要添加判断可以用<%%>javascripe

#21


引用 20 楼 sizhouzhou 的回复:
您说的没错 但是session里面的值我要用在Javascript脚本中创建div等等操作啊 您能直白一点指导我么 比如5楼的fenyeshu告诉我的那样 但我还搞不懂我是应该怎么获取json的 他说前台可以直接data[0]取出第一个数据,data[1]取出第二个数据 但先应该获取他的json什么的吧 ajax 从后台传值到前台

#22


直接 打开控制台,先看有没有错误,~

#23


引用 20 楼 sizhouzhou 的回复:
Quote: 引用 19 楼 longburulin 的回复:

Quote: 引用 18 楼 sizhouzhou 的回复:

请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

那何必那么麻烦,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用这个标签获取集合,遍历即可啊  如果要添加判断可以用<%%>javascripe

虽然没有用json来解决 但还是找到其他的方法弄好了 不管怎样 还是谢谢您了

#24


引用 23 楼 longburulin 的回复:
Quote: 引用 20 楼 sizhouzhou 的回复:

Quote: 引用 19 楼 longburulin 的回复:

Quote: 引用 18 楼 sizhouzhou 的回复:

请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

那何必那么麻烦,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用这个标签获取集合,遍历即可啊  如果要添加判断可以用<%%>javascripe

虽然没有用json来解决 但还是找到其他的方法弄好了 不管怎样 还是谢谢您了

客气了!

#25


引用 6 楼 fenyeshu 的回复:
你也可以把两个数据组合成对象

JSONObject  js = new JSONObject();
js.accumulate("对象变量",对象值);
response.getWriter().print(js.toString());

前台

data就是这个对象, 然后, data.getXX()就可以拿出值了

我提示undefined,这是为什么,getXX(),应该直接写成data.xx吧

#1


要用PrintWriter类来写入吧

#2


现在一般都是用json返回数据的

#3


引用 楼主 longburulin 的回复:
在后台进行数据库查询后 得到数据库中的2个字段
我应该再把得到的2个字段返回前台
这个response.getWriter().write()好像不能成功
求指导

PrintWriter对象也是通过response.getWriter()来获取的,所以不是这个问题
二楼正解,使用json

#4


response.getWriter.print(你的对象);

#5



response.setContentType("text/html;charset=gbk");
String str = JSONArray.fromObject(lists).toString();
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();

其中红色的是一个集合,你可以把两个数据组合成集合。

List<String> lists = new ArrayList<String>();
lists.add("数据");
lists.add("数据");

前台直接

data[0]取出第一个数据,data[1]取出第二个数据

#6


你也可以把两个数据组合成对象

JSONObject  js = new JSONObject();
js.accumulate("对象变量",对象值);
response.getWriter().print(js.toString());

前台

data就是这个对象, 然后, data.getXX()就可以拿出值了

#7


推荐使用JSON,可以参考以下代码
action:
  Map<String,Object> map = new HashMap<String,Object>();
            map.put( "total",total);
           map.put( "list", list);
            json = JSONObject. fromObject(map);
            try {
                 /*设置编码格式,返回结果
                 * ***/
                response.setContentType( "text/html;charset=UTF-8");
                response.getWriter().write( json.toString());
           } catch (IOException e1) {
                e1.printStackTrace();
           }

Jsp页面中用ajax请求后台:
$.ajax(
      url:
      method:
     success:function(data){
     var list = data.list;  //获取后台list
}
);

#8


requset.setAttribute();
requset.getAttribute();

#9


一般要先转换成json格式  然后再往前台传值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

#10


引用 7 楼 qqliang1314 的回复:
您好  我没有用jQuery来写
$.ajax(
      url:
      method:
     success:function(data){
     var list = data.list;  //获取后台list
}这个我应该怎么理解 
我代码是这样的if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}
我应该在updatelist怎么利用按照您所传过来的数据呢

#11


引用 9 楼 sizhouzhou 的回复:
一般要先转换成json格式  然后再往前台传值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

您好!我还没用过json 用json之前是不是要下载什么.jar的啊 然后用 response.getWriter().write( json.toString());来传递 前台接收怎么实现啊

#12


引用 11 楼 longburulin 的回复:
Quote: 引用 9 楼 sizhouzhou 的回复:

一般要先转换成json格式  然后再往前台传值的!
JSONArray luckuser = JSONArray.fromObject(list);
out.print(luckuser.toString());

您好!我还没用过json 用json之前是不是要下载什么.jar的啊 然后用 response.getWriter().write( json.toString());来传递 前台接收怎么实现啊

不用jar包   用ajax接收
function getData2(){
//alert(2);
//ajax异步返回数据
$.ajax({
type:"Post",
url:"modelaction!QueryNewbet.action?aflag=2",
dataType:"json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success : function(data) {
var json=eval(data);
var result1="";
if(json.length!=0){
for(var i=0;i<json.length;i++){
 result1+="<span>用户名:"+json[i].username+"</span>&nbsp;&nbsp;<span>中奖额:"+json[i].a+".00"+"</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
 }
}
$("#luck").html(result1);
},
  error:function(){
    //alert("no2");
  }
});
}
这样需要自己布局  

#13


你可以直接放在session里 不用刚刚那个方法也行  刚刚那个是异步提交

#14


引用 5 楼 fenyeshu 的回复:
您好!前台用 response.getWriter().write(  参数);来接收么 
那参数我应该写什么啊 
能详细点指导么 万分感谢啊

#15


引用 13 楼 sizhouzhou 的回复:
你可以直接放在session里 不用刚刚那个方法也行  刚刚那个是异步提交

谢谢您的回答 但是我想尝试用一下
平时没用json的时候if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}然后在updatelist函数里面通过request.getParameter(参数)获取在后台自己建的一个字段么
如果不按照你这$.ajax(
      url:
      method:
     success:function(data){
     
}
);来获取 呢 
我在updatelist()怎么实现 
我很笨 也没有用过jQuery来着啊

#16


引用 15 楼 longburulin 的回复:
Quote: 引用 13 楼 sizhouzhou 的回复:

你可以直接放在session里 不用刚刚那个方法也行  刚刚那个是异步提交

谢谢您的回答 但是我想尝试用一下
平时没用json的时候if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}
}然后在updatelist函数里面通过request.getParameter(参数)获取在后台自己建的一个字段么
如果不按照你这$.ajax(
      url:
      method:
     success:function(data){
     
}
);来获取 呢 
我在updatelist()怎么实现 
我很笨 也没有用过jQuery来着啊

如果你只是单纯的两个变量 可以 定义一个隐藏标签
<input type="hidden" id="totalYeshu" value="${totalYeshu}">
<input type="hidden" id="totalNum" value="${totalNum}">
然后通过id   这样获取隐藏的值$("#totalYeshu").val()

如果是个集合 就要先获取集合 然后循环了
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>

#17


引用 16 楼 sizhouzhou 的回复:
是集合哦 问题是我应该在Javascript中怎么获取您所说的然后在我的updatelist函数里面json啊

if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
updatelist();
}

#18


请问LZ你是想要实现什么??jsp页面显示吗?

#19


引用 18 楼 sizhouzhou 的回复:
请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

#20


引用 19 楼 longburulin 的回复:
Quote: 引用 18 楼 sizhouzhou 的回复:

请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

那何必那么麻烦,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用这个标签获取集合,遍历即可啊  如果要添加判断可以用<%%>javascripe

#21


引用 20 楼 sizhouzhou 的回复:
您说的没错 但是session里面的值我要用在Javascript脚本中创建div等等操作啊 您能直白一点指导我么 比如5楼的fenyeshu告诉我的那样 但我还搞不懂我是应该怎么获取json的 他说前台可以直接data[0]取出第一个数据,data[1]取出第二个数据 但先应该获取他的json什么的吧 ajax 从后台传值到前台

#22


直接 打开控制台,先看有没有错误,~

#23


引用 20 楼 sizhouzhou 的回复:
Quote: 引用 19 楼 longburulin 的回复:

Quote: 引用 18 楼 sizhouzhou 的回复:

请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

那何必那么麻烦,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用这个标签获取集合,遍历即可啊  如果要添加判断可以用<%%>javascripe

虽然没有用json来解决 但还是找到其他的方法弄好了 不管怎样 还是谢谢您了

#24


引用 23 楼 longburulin 的回复:
Quote: 引用 20 楼 sizhouzhou 的回复:

Quote: 引用 19 楼 longburulin 的回复:

Quote: 引用 18 楼 sizhouzhou 的回复:

请问LZ你是想要实现什么??jsp页面显示吗?

我的本意是jsp页面通同用ajax来实现查询数据库嘛 然后得到数据库中的2个字段 嘻嘻 然后想用Javascript动态创建返回的字段显示在原来的jsp页面上面哦
ajax 从后台传值到前台

那何必那么麻烦,直接放在session里面然后前台
<c:forEach items="${typeList}" var="type">
${type.tname }
                           、、、
</c:forEach>用这个标签获取集合,遍历即可啊  如果要添加判断可以用<%%>javascripe

虽然没有用json来解决 但还是找到其他的方法弄好了 不管怎样 还是谢谢您了

客气了!

#25


引用 6 楼 fenyeshu 的回复:
你也可以把两个数据组合成对象

JSONObject  js = new JSONObject();
js.accumulate("对象变量",对象值);
response.getWriter().print(js.toString());

前台

data就是这个对象, 然后, data.getXX()就可以拿出值了

我提示undefined,这是为什么,getXX(),应该直接写成data.xx吧