如何用JSP实现网页聊天室

如何用JSP实现网页聊天室,第1张

在这里,我们将提供一个聊天室的简单的JSP程序。我们的程序是按照JSP

Model

2的规范来实现的。简而雹竖正言之,就是我们将绝大多数处理用户请求的任务交给Servlet来执行,而我们的JSP仅仅是用来完成显示。

在阅读我们的程序之前,你最好已经具备了Java和JSP的基础知识,但是如果你对纤芦Java和JSP不是太熟悉,你也可以直接阅读我们的程序,对于每一项涉及到Java和JSP的内容,在我们的程序中第一次出现时,我源悔们会作简要的说明。

当然,你还是需要阅读其他的相关教程,因为我们的这篇文章毕竟不是一个教程。

此外,我们的聊天室是挂接在另一个应用系统上的,对于其中一些特殊的命令方法,你可以不必太介意。

1.登陆界面

<%@ page language="java" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "基渗-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=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>

2.

<%@ page contentType="text/htmlcharset=gb2312" import="

com.san.db.UserId,

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/htmlcharset=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()

}%>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12527311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存