大家来帮我看看。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中就好了