我想每秒钟调用一次
<a href='/Chat/servlet/RefreshChat?hisid=<%= hismember.getid()%>&myid=<%=member.getid()%>'>重获信息</a>
怎么能做到
最好是在文本框正在输入时不要调用
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ page language="java" import="java.util.Iterator, com.chat.bean.blog"  %>
<jsp:useBean id="member" class = "com.chat.bean.Member" scope= "session" ></jsp:useBean>
<jsp:useBean id="chat" class = "java.util.ArrayList" scope = "session"></jsp:useBean>
<jsp:useBean id="hismember" class = "com.chat.bean.Member" scope = "session"></jsp:useBean>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
聊天
</title>
</head>
<body><h1>和<%= hismember.getid()%></>聊天中:</h1>
<p>
<form action="servlet/Chat" method="post">
<input type="hidden" name="myid" value=<%= member.getid()%>/>
<input type="hidden" name="myname" value=<%= member.getName()%>/>
<input type="hidden" name="hisid" value=<%= hismember.getid()%>/> <table> <tr>
<td>你说:</td>
<td><input type="text"  style="width:1000px;height:20px;"  name="message"></td>
</tr>

<tr>
<td><input type="submit" value="提交"></td>
<td><input type="reset" value="重置"></td>
<td><a href='/Chat/servlet/RefreshChat?hisid=<%= hismember.getid()%>&myid=<%=member.getid()%>'>重获信息</a></td>
</tr>
</table>
</form><table width="95%" align="center" border="1">
<caption>聊天记录:</caption>
<tr>
<td width="5%"></td>
<td width="2%"></td>
<td width="40%"></td>
<td width="10%"></td>
</tr>
<% 
Iterator it = chat.iterator();
while (it.hasNext())
{
blog c = (blog)it.next();
%>
<tr>
<td><%= c.getname() %></td>
<td>说:</td>
<td><%= c.getmessage() %></td>
<td><%= c.gettime() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>

解决方案 »

  1.   

    不是不能,而是做起来太麻烦了,兄弟,说白了,这里是javaEE,javaEE的搞前台厉害的不多,你没看只要是涉及到javascript的,就没多少人回答吗?
    我做过聊天室的,你可以用Ajax做每多少次请求到后台,但是还是要到setTimeOut
    还有中方式,
    <meta http-equiv="refresh" content="4;url=本页面地址">
    把这句代码放在meta那一块去,这是自动刷新的,每隔4秒刷,你可以改,我只能说这么多了!
      

  2.   


    SetInterval或者setTimeout任你需求选择。。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。
    区别:
    setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码。
    而setTimeout只执行一次那段代码。showTime例子;   相当于间接递归调用
    function showTime() {
         var today = new Date();
         alert("The time is: " + today.toString());
         setTimeout("showTime()", 5000);
    }setInterval例子;   相当于定时器。。多久执行一次.
    setInterval("showTime()", 5000);
    function showTime() {
         var today = new Date();
         alert("The time is: " + today.toString());
    }
      

  3.   

    javascript的里面有可惜不会,学习
      

  4.   

    刚开始我做聊天程序的时候也是用javascript的定时,这样做出来的东西性能很不好,可以选择scoket!
      

  5.   

    我一直用的setTimeout方法,不过setInterval方法也可以的!!
      

  6.   

    setTimeout方法可以
    在做的时候先判断输入框是否获取焦点,获取焦点就不刷新...
      

  7.   

    楼主 可以在后台写一个servlet 然后在写一个定时器 可以试一试Spring的定时器。然后设置定时器调用servlet的间隔时间。