JSP无刷新聊天室

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>





  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值