建立一個登陸頁面
<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>使用者登陸</title>
</head>
<body>
<form action="chart.jsp" method="post">
帳號<input type="text" name="userName"/>
口令<input type="password" name="passwd"/>
<input type="submit" value="確認"/>
</form>
</body>
</html>
建立一個聊天頁面名字為chart.jsp
<%@ page contentType="text/html; charset=GBK" import="java.util.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>My JSP 'chart.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<%response.setIntHeader("Refresh",10); %>
</head>
<body>
歡迎來到網站聊天系統
<%
/**
程式目的:類比一個聊天室程式
測試方法,請在本機上開啟3個IE視窗,從登陸介面進去。再發言.
反應可能不是很快,你多等一會。我已經測試過了.
**/
try{
//擷取從使用者登陸介面傳遞過來的使用者
String loginname = request.getParameter("userName");
//擷取使用者的sessionId
String userSessionId=(String)session.getAttribute("userSessionId");
//根據sessionId取出使用者帳號
String name = (String)session.getAttribute(userSessionId+"user");
//如果loginnmae!=null,表明使用者初次登陸
if(loginname!=null)
{ //初次登陸,創造一個sessionid,把系統目前時間作為sessionId
userSessionId=System.currentTimeMillis()+"";
session.setAttribute("userSessionId",userSessionId);
//儲存帳號在session中
session.setAttribute(userSessionId+"user",loginname);
}
//擷取使用者發言
String word = request.getParameter("yourWords");
//從application中所有使用者曆史發言
String chart = (String)application.getAttribute("chart");
//當發言到一定長度就清空,以免耗盡記憶體
if(chart!=null&&chart.length()>10000) application.setAttribute("chart","");
if(name!=null&&word!=null){
//組裝使用者在螢幕上發言語句:
String userword=new Date()+" 使用者名稱:["+name+"]說:"+word;
//將使用者發言存入記錄中
chart+=userword+"/r/n";
application.setAttribute("chart",chart);
}
%>
<textarea rows="15" cols="40" name="output" style="width:100%">
<% if(name!=null) out.print(chart);
%>
</textarea>
<% if(name!=null) out.print(name+"說");%>
<form action="" method="post">
<input type="text" size="45" name="yourWords">
<input type="hidden" name="chart"><br>
<input type="submit" value="發送"/>
</form>
</body>
</html>
<%}catch(Exception e){
e.printStackTrace();
}%>