一个简单的JSP聊天室实例
说明:本程序来自网络,仅供学习交流使用,请不要作为商业用途
Good Luck To You!
打开Tomcat服务器,启动服务,在浏览器中输入:http://localhost:8080/dd/index.jsp
其中dd为自己建立的文件夹,位置C:\Tomcat 7.0\webapps\dd
聊天室测试截图:
我对本聊天室程序的看法:
1 未使用数据库保存用户信息
2 用户信息太简单
3 仅能作为本地使用,不支持网络使用
4 不支持私聊,聊天内容全部可见
5 不支持清除屏幕功能
C:\Tomcat 7.0\webapps\dd文件夹内容:
Css文件夹内容:style.css
Images文件夹内容
· bg.jpg
go.jpg
Login.jpg
Top.jpg
聊天室主页.jpg
JS文件夹内容 AjaxRequest.js
var net=new Object();
//定义一个全局变量net
net.AjaxRequest=function(url,onload,onerror,method,params){//创建一个构造函数
this.req=null;
this.onload=onload;
this.onerror=(onerror) ? onerror : this.defaultError;
this.loadDate(url,method,params);
}
net.AjaxRequest.prototype.loadDate=function(url,method,params){
if (!method){
method="GET";
}
if (window.XMLHttpRequest){
this.req=new XMLHttpRequest();
} else if (window.ActiveXObject){
this.req=new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.req){
try{
var loader=this;
this.req.onreadystatechange=function(){
net.AjaxRequest.onReadyState.call(loader);
}
this.req.open(method,url,true);
//this.req.send(params);
this.req.send(null);
}catch (err){
this.onerror.call(this);
}
}
}
net.AjaxRequest.onReadyState=function(){
//重构onReadyState函数
var req=this.req;
var ready=req.readyState;
if (ready==4){
if (req.status==200 ){
this.onload.call(this);
}else{
this.onerror.call(this);
}
}
}
net.AjaxRequest.prototype.defaultError=function(){
//默认的错误处理函数
alert("error fetching data!"
+"\n\nreadyState:"+this.req.readyState
+"\nstatus: "+this.req.status
+"\nheaders: "+this.req.getAllResponseHeaders());
}
Src文件夹内容:C:\Tomcat 7.0\webapps\dd\src\com\wgh UserForm.java
package com.wgh;
public class UserForm {
public String username;
}
WEB-INF文件夹内容:
Web.xml
JSP聊天室源代码
Index.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" %>
聊天室
Login.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" %>
<%@ page import="java.util.Vector"%>
<%@ page import="com.wgh.UserForm"%>
<%
request.setCharacterEncoding("gb2312");
String username=request.getParameter("username");
boolean flag=true;
Vector temp=(Vector)application.getAttribute("myuser");
if(application.getAttribute("myuser")==null){
temp=new Vector();
}
for(int i=0;i
alert('该用户已经登录');window.location.href='index.jsp';");
flag=false;
}
}
UserForm mylist=new UserForm();
mylist.username=username;
//保存当前登录的用户名
session.setAttribute("username",username);
application.setAttribute("ul",username);
Vector myuser=(Vector)application.getAttribute("myuser");
if(myuser==null){
myuser=new Vector();
}
if(flag){
myuser.addElement(mylist);
}
application.setAttribute("myuser",myuser);
response.sendRedirect("main.jsp");
%>
Main.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<% request.setCharacterEncoding("gb2312"); %>
聊天室
Online.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" %>
<%@ page import="com.wgh.UserForm"%>
<% request.setCharacterEncoding("gb2312"); %>
<%Vector myuser=(Vector)application.getAttribute("myuser");%>
Send.jsp
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<%@ include file="content.jsp"%>
<%response.sendRedirect("main.jsp");%>
Content.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %>
<% request.setCharacterEncoding("gb2312"); %>
<%
if(session.getAttribute("username").equals("null")){
out.println("");
}
if(session.getAttribute("username").equals("request.getParameter("+request.getParameter("tempuser")+")")){
out.println("");
}
String message=request.getParameter("message");
String select=request.getParameter("select");
String tempuser=request.getParameter("tempuser");
String color=request.getParameter("color");
if(message!=null&&tempuser!=null){
if(message.startsWith("<")){
out.print("");
return;
}else if(message.endsWith(">")){
out.print("");
return;
}
if(application.getAttribute("message")==null){
//第一个人说话时
application.setAttribute("message","
"+""+
""+session.getAttribute("username")+""+""+""+select+""+"对"+""+"["+tempuser+"]"+""+"说:"+""+message);
}else{
application.setAttribute("message","
"+""+""+session.getAttribute("username")+""+""+""+select+""+"对"+""+"["+tempuser+"]"+""+"说:"+""+message+""+application.getAttribute("message"));
}
out.println(""+application.getAttribute("message")+"
");
}else{
if(application.getAttribute("message")==null){
out.println(""+application.getAttribute("ul")+""+""+"走进了网络聊天室"+"");
out.println("
"+"
"+""+"请各位聊友注意聊天室的规则,不要在本聊天室内发表反动言论及对他人进行人身攻击,不要随意刷屏。"+""+"");
}else{
out.println(application.getAttribute("message")+"
");
}
}
%>
Leave.jsp
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<% request.setCharacterEncoding("gb2312"); %>
<%@ page import="java.util.Vector"%>
<%@ page import="com.wgh.UserForm"%>
<%
Vector temp=(Vector)application.getAttribute("myuser");
for(int i=0;i
聊天室
配置源程序
将程序发布到Tomcat下
(1)将“chartRoom”文件夹拷贝到Tomcat安装路径下的webapps文件夹中。
(2)选择开始菜单中的“所有程序\Apache Tomcat 6.0\Monitor Tomcat”命令,这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为,则说明Tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹出的快捷菜单中选择“Start Service”菜单项启动Tomcat服务器,启动后将显示为。
(3)打开IE浏览器,在地址栏中输入http://localhost:8080/,进入“Tomcat软件管理”页面。
注意:8080为安装Tomcat时设置的端口号。
(4)单击Tomcat Manager超链接,弹出“连接到 localhost”对话框。
(5)在用户名及密码处输入登录Tomcat的用户名和密码,单击【确定】按钮。
(6)进入“Tomcat应用程序管理”页面,在此页面中单击“chartRoom”,进入本程序主页面,完成Tomcat配置。
使用说明
系统介绍
随着Internet技术的飞速发展,网络已经成为人们生活中不可缺少的一部分,通过聊天室在线聊天已成为网络上人与人之间沟通、交流和联系的一种方式。为此,越来越多的网站开始提供在线聊天的功能。与此同时,聊天室也以其方便、快捷、低成本等优势受到众多企业的青睐,很多企业的网站中也加入了聊天室,以达到增进企业与消费者之间、消费者与消费者之间相互交流和联系的目的。本次课程设计的目的就是编写一个无刷新的聊天室,该聊天室不但可以实时显示在线人员列表及聊天内容,而且增加了聊天表情和文字颜色选择的功能。
操作注意事项
1.在选择聊天目标人时,不能选择自己和自己聊天。
操作流程
(1)运行程序用,在“用户名”文本框中随意输入一个名称,如图1.1所示。
图1.1 用户登录
(2)输入用户名后,单击“GO”按钮,即可进入聊天室界面,如图1.2所示。
图1.2 聊天室界面