如何把Action的信息实时展示在jsp页面上?

小脩 2014-07-11 02:13:24
我在jsp页面上点击一个按钮,执行后台Action方法,Action方法会逐渐得到我要的很多条文字。

我要在jsp页面上把后台逐渐得到的文字实时显示到jsp页面。

类似很多行system.out.println("sdfsafsafsafsdfsf"); 在Console里输出一样。
...全文
191 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shixitong 2014-07-11
  • 打赏
  • 举报
回复
引用 9 楼 lxk1201 的回复:
[quote=引用 7 楼 shixitong 的回复:]
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function refreshDiv(){ 
    $.ajax({ 
    //配置 
    url:"IndexAction_init.action",
    async:false,
    dataType:'text',
    success:function(data){
    	$("#autodiv").html($("#autodiv").html()+data);
    }
    }); 
} 
//5秒后重复执行该函数 
setInterval('refreshDiv()', 5000); 

</script>

</head>

<body id="mybody">

<div id="autodiv" style="border:1px solid red;height:300px;width:400px;">
</div>
</body>
</html>
引用 8 楼 javaLLJ123 的回复:
我和7楼想法一样。定时器调用ajax。
这样会把一个Action方法重复执行。 我想要的是方法执行一遍,方法里面会产生多条输出。 这是实时展示。[/quote] 多条输出不太明白,如果只执行一遍,那么后来新的数据怎么返回到前台呢? 说实话,你真要做那种实时展示,估计要用activex控件之类的东西,单靠web估计有点悬,我之前也看过dwr反推和长连接,其实他们还是不断的发请求,然后再返回到前台
小脩 2014-07-11
  • 打赏
  • 举报
回复
引用 7 楼 shixitong 的回复:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function refreshDiv(){ 
    $.ajax({ 
    //配置 
    url:"IndexAction_init.action",
    async:false,
    dataType:'text',
    success:function(data){
    	$("#autodiv").html($("#autodiv").html()+data);
    }
    }); 
} 
//5秒后重复执行该函数 
setInterval('refreshDiv()', 5000); 

</script>

</head>

<body id="mybody">

<div id="autodiv" style="border:1px solid red;height:300px;width:400px;">
</div>
</body>
</html>
引用 8 楼 javaLLJ123 的回复:
我和7楼想法一样。定时器调用ajax。
这样会把一个Action方法重复执行。 我想要的是方法执行一遍,方法里面会产生多条输出。 这是实时展示。
javaLLJ123 2014-07-11
  • 打赏
  • 举报
回复
我和7楼想法一样。定时器调用ajax。
shixitong 2014-07-11
  • 打赏
  • 举报
回复
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function refreshDiv(){ 
    $.ajax({ 
    //配置 
    url:"IndexAction_init.action",
    async:false,
    dataType:'text',
    success:function(data){
    	$("#autodiv").html($("#autodiv").html()+data);
    }
    }); 
} 
//5秒后重复执行该函数 
setInterval('refreshDiv()', 5000); 

</script>

</head>

<body id="mybody">

<div id="autodiv" style="border:1px solid red;height:300px;width:400px;">
</div>
</body>
</html>
jackson_fighting 2014-07-11
  • 打赏
  • 举报
回复
setInterval() 执行ajax。
小脩 2014-07-11
  • 打赏
  • 举报
回复
引用 4 楼 rui888 的回复:
长连接 iframe 参照上面链接。
谢谢, 我先瞅瞅、试试。
tony4geek 2014-07-11
  • 打赏
  • 举报
回复
长连接 iframe 参照上面链接。
小脩 2014-07-11
  • 打赏
  • 举报
回复
引用 1 楼 zhuangzi111 的回复:
是定时器不断执行action?
引用 2 楼 rui888 的回复:
通过ajax 吧。方便不刷新,,逐渐取数据。
Action的方法只执行一次。 我用过dwr的推送,但是推送展示到jsp页面的信息也不是实时的。
tony4geek 2014-07-11
  • 打赏
  • 举报
回复
通过ajax 吧。方便不刷新,,逐渐取数据。
凌云之狮 2014-07-11
  • 打赏
  • 举报
回复
是定时器不断执行action?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧