login.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>登录聊天室</title>
</head>
<body>
<table width="400" height="100" border="1" align="center"
cellpadding="0" cellspacing="0">
<tr>
<td align="center">登录聊天室</td>
</tr>
<tr>
<td align="center">
<form name="form1" method="post"
action="/charpter19/method.jsp?action=login">
您的昵称:<input name="username" id="username" type="text" /> <input
type="submit" name="Submit" value="进入" />
</form></td>
</tr>
</table>
</body>
</html>
method.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*"%>
<jsp:useBean id="msgs" class="java.util.HashMap" scope="application" />
<%
request.setCharacterEncoding("UTF-8");
String action = request.getParameter("action");
if (action.equals("login")) {
//用户登录,获得用户名。然后创建两个变量,保存用户登录信息和聊天信息
String username = request.getParameter("username");
String msg = "欢迎" + username + "光临本聊天室!<br/>";
session.setAttribute("username", username);
msgs.put(username, msg);
response.sendRedirect("main.html");
}
if (action.equals("sendMsg")) {
String newMsg = session.getAttribute("username") + ":" + request.getParameter("msg");
//发送消息时,将聊天室所有人的消息都加上新的发言内容
Iterator it = msgs.keySet().iterator();
String username = null;
String msg = null;
while (it.hasNext()) {
username = (String) it.next();
msg = (String) msgs.get(username);
msg = msg + "<br/>" + newMsg;
msgs.put(username, msg);
}
response.sendRedirect("inputMsg.jsp");
}
if (action.equals("showMsg")) {
//显示某个用户的消息
String username = (String) session.getAttribute("username");
String msg = (String) msgs.get(username);
out.println("loadContent.innerHTML=\""+msg+"\";");
}
%>
main.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>聊天室主页面</title>
</head>
<frameset rows="*,80" frameborder="yes" border="2" framespacing="2">
<frame src="showMsg.html" name="mainFrame">
<frame src="inputMsg.jsp" name="bottomFrame" scrolling="no"
noresize="noresize">
</frameset>
</html>
inputMsg.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<form name="form1" method="post"
action="/charpter19/method.jsp?action=sendMsg">
<%=session.getAttribute("username")%>:<input name="msg" id="msg"
type="text" size="60" /> <input type="submit" name="Submit"
value="发言" />
</form>
</body>
</html>
showMsg.html
<html>
<head>
<script language="javascript" type="text/javascript">
function GetData(){
url = "/charpter19/method.jsp?action=showMsg";
try{
DataLoad.src = url;
}catch(e){
return false;
}
{var timeoutid = setTimeout("GetData()",2000)}
}
</script>
<script id="DataLoad" language="javascript" type="text/javascript" defer></script>
</head>
<body οnlοad="javascript:GetData();">
<span id="loadContent">数据载入中……</span>
</body>
</html>