首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

大家来帮小弟我看看。jsp的聊天室。能看到自己说的话,不能看到别人说的话是什么原因。有代码。

2012-01-05 
大家来帮我看看。jsp的聊天室。能看到自己说的话,不能看到别人说的话是什么原因。有代码。。框架页面 frame.htm

大家来帮我看看。jsp的聊天室。能看到自己说的话,不能看到别人说的话是什么原因。有代码。。
框架页面 frame.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>在线交流</title>
</head>
<frameset rows="*,80,60" frameborder="NO" border="1" framespacing="2">
<frameset cols="*,200" frameborder="NO" border="1" framespacing="2">
<frameset rows="*,*" frameborder="NO" border="1" framespacing="2">
<frame src="1.jsp" name="gonggao" scrolling="yes" >

<frame src="2.html" name="myspeak" >
</frameset>
<frame src="33.jsp" name="namelist" scrolling="yes" noresize>
</frameset>
<frame src="4.html" name="sendtalk" scrolling="NO" noresize>
<frame src="5.html" name="bottomFrame" scrolling="NO" noresize>
</frameset>
<noframes><body>
</body></noframes>
</html>

信息提交页4.html
<html> 
  <head> 
  <title>聊天内容录入区</title> 
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
  </head> 
   
  <body bgcolor="#FFFFFF"> 
  <form name="form1" method="POST" action="1.jsp" target="gonggao"> 
  <div align="center"> 
  <input type="text" name="message"> 
  <input type="submit" name="Submit" value="写写看"> 
  </div> 
  </form> 
  </body> 
  </html>

信息接收页1.jsp
<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*"%>
<%
String talkmessage = request.getParameter("message");//获得前台说的话
if(talkmessage == null) talkmessage = "";
session.setAttribute("speak",talkmessage);//把说的话放入到SESSION中
//System.out.println((String)session.getAttribute("speak"));
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html> 
<head> 
<title>聊天内容显示区</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<script language="javascript" src="function/ajax2.js"></script>
<script language="javascript">
function windowLoad()
{//页面加载,获取全部内容
send_request("get","/jtjtalkabout/SelectTalkMessage?time="+ new Date().getTime(),null,"XML",populateLists);
setTimeout("windowLoad()", 10000);
}
//将所获取的新闻列表填充到页面的相应位置
function populateLists() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var doc="";
var doc = http_request.responseXML;
var newslist = "";
var innerHTML = "";

var talklist = doc.getElementsByTagName("talkmessage");//获得说话列表的标签

///////显示人数
if(talklist == null || talklist.length ==0)
{
//alert("刚进来是空的啊");
innerHTML += "";
}


else 
{
newslist = talklist[0];

//alert("现在有人说话了呵呵");
//alert(newslist.childNodes[0].firstChild.data);
innerHTML += "<table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\r\n";

innerHTML += "<tr><td width='100%' height='25'>"+newslist.childNodes[0].firstChild.data+"</td></tr>";

innerHTML += "</table>\r\n";

}
document.getElementById("message").innerHTML = innerHTML;

else if(http_request.status == 404)
{
alert("路径错误");
}
else
{ //页面不正常
alert("您所请求的页面有异常。");
}
}
}

</script>
</head> 
   
<body bgcolor="#FFFFFF" onLoad="windowLoad()"> 
<div id="message">
</div>
</body> 
</html>

SelectTalkMessage.java
public class SelectTalkMessage extends HttpServlet
{


public void service(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException
{

HttpSession session = request.getSession();

PrintWriter out = response.getWriter();

StringBuffer str = new StringBuffer();

String talk = (String)session.getAttribute("speak");

str.append("");

String notalk = "欢迎进入聊天室....";

response.setContentType("application/xml");

str.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n");

str.append("<messagelist>\r\n");


if(talk == null || talk.equals(""))
{
str.append("<nullmessage>\r\n");

str.append("<message>"+notalk+"</message>\r\n");

str.append("</nullmessage>\r\n");
}
else
{

str.append("<talkmessage>\r\n");

str.append("<message>"+talk+"</message>\r\n");

str.append("</talkmessage>\r\n");

}


str.append("</messagelist>");

out.println(str.toString());

System.out.println(str.toString());

}
}
现在是没什么错误。就是看不到别人说的话。是不是要给speak加session监听啊?

[解决办法]
你把聊天内容存在自已的session中了,又从自已的session中获得,当然看不到别人说放了.
我介意你存在数年据库中.或者存在session的临听类中(HttpSessionListener)
[解决办法]
同意楼上的,你把发言都写在每个用户自己的SESSION,别人怎么看啊
[解决办法]
把信息放在application中就好了

热点排行