本文目录一览:
- 1、JSP在线聊天系统
- 2、用JSP实现一个简易的网页版聊天室。
- 3、JSP在线聊天系统退出的问题
- 4、jsp实现在线聊天功能
- 5、怎么用JSP设计与实现简单聊天室系统
- 6、jsp网页怎么实现即时聊天
JSP在线聊天系统
这个项目我以前做过 累死了 因为是B/S无状态的 所以无法使用SOCKET 但JSP就够了 当别人点击关闭按纽的时候 你绑定一个AJAX事件 对方一关闭就把关闭者的SESSION ID传到想应的SERVET上来(也可以是系统时间 能唯一标识关闭者就可以了)然后SERVLET获得关闭者的SESSION ID 放到你的业务层 可以设置一个ARRAYLIST或者HASHMAP 专门放关闭者的SESSION ID 当你想关闭某个人的时候 点击的同时把你要删除人的SESSION ID和先前那个LIST中的元素遍历比较下 如果有相同的 通过回调函数返回一个数 1代表可以删除 调用个函数REMOVE掉你先前创建的对方在线图象(动态创建的) 0就不删除 思路是这样的 我当时就是负责聊天这块的 还是很麻烦的 很多细节需要去处理 最麻烦的就是刷新问题
用JSP实现一个简易的网页版聊天室。
1.登录页面
文件名:know.jsp
%@ page language="java" import="java.util.*" pageEncoding="utf-8"%
%
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%"
title登录/title
meta http-equiv="pragma" content="no-cache"
meta http-equiv="cache-control" content="no-cache"
meta http-equiv="expires" content="0"
/head
body
form action="know2.jsp" method="post"
input type="text" name="username"br/
input type="submit" value="提交"/
/form
/body
/html
2.聊天页面
文件名:know2.jsp
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
!DOCTYPE HTML
html
head
base href="%=basePath%"
title聊天/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="refresh"content="10;url=know2.jsp"
/head
style
.container{
position:relative;
top:100px;
margin:0 auto;
width: 500px;
height: 300px;
border: 1px solid #aaa;
overflow: hidden;
}
.usrlist{
width: 100px;
height: 250px;
background-color: #bbb;
display: block;
float: left;
overflow: scroll;
}
.chartinfo{
width: 400px;
height: 250px;
background-color: #ccc;
display: block;
float: left;
overflow: scroll;
}
.send{
width: 500px;
height: 50px;
background-color: #ddd;
display: block;
float: left;
}
select{
width: 50px;
}
/style
%
ListString chartInfo = new ArrayListString();//保存聊天信息的集合
ListString usrs1 =new ArrayListString();//保存登录用户的集合
if(null!=application.getAttribute("chartinfo")){
chartInfo = (ListString)application.getAttribute("chartinfo");
}
if(null!=application.getAttribute("users")){
usrs1 = (ListString) application.getAttribute("users");
}
//form 提交过来的数据
String username = request.getParameter("username");
String say = request.getParameter("gang");
String to_usr = request.getParameter("tousr");
if(null!=username!"".equals(username)){
if(!usrs1.contains(username)){
usrs1.add(username);
session.setAttribute("users",username);
}
}
application.setAttribute("users",usrs1);//将user1集合放入application
String lgusr = "";
if(null!=session.getAttribute("users")){
lgusr = (String)session.getAttribute("users");
}
if(lgusr.equals("")||null==lgusr){
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", "know.jsp");
}
String chart="";
if(null!=to_usrnull!=say!"".equals(to_usr)!"".equals(say)){
chart = lgusr+" 对 "+to_usr+"说: "+say;
}
if(!"".equals(chart)){
chartInfo.add(chart);
}
application.setAttribute("chartinfo", chartInfo);//将聊天信息集合 放入 application
%
body
div class="container"
div class="usrlist"
%
ListString usrs = (ListString) application.getAttribute("users");
if(usrs.size()0){
for(String u : usrs){
out.print(u);
out.print("br/");
}
}
%
/div
div class="chartinfo"
%
// out.print(chartInfo.size());
for(String ct : chartInfo){
out.print(ct);
out.print("br/");
}
%
/div
div class="send"
form method="post" action="know2.jsp"
span对 /span
select name="tousr"
option/option
%
for(String u : usrs){
if(!u.equals(lgusr)){
out.print("");
out.print("option value='"+u+"'"+u+"/option");
}
}
%
/select
span 说 :/span
input type="text" name="gang"style="width: 300px;"
input type="submit" value="发送"
/form
/div
/div
/body
/html
这是两个jsp文件,分别是know.jsp 和know2.jsp。你说的功能基本上都达到。
JSP在线聊天系统退出的问题
浏览器事件 这个有JS的味道, 而JS 本身 就是各浏览器, 不太灵光, 好好查查
jsp实现在线聊天功能
首先js,那是不用说的,有js的话,那么jquery更是不可少的,有这两个在前台你大可放心,但是前提是对js要熟悉,对jquery的方法,函数等都要熟悉,这样你的前台将万无一失。下来就是最主要的Ajax,它主要实现的是异步提交,无刷新,像你实现一对一聊天的时候就需要Ajax不但要查询对方说过的话,而且还要更新对方说的话的状态!所以需要Ajax,其实jquery里面的Ajax也挺简单的,好好看看就不用Ajax了,直接用Jquery.Ajax()来替代Ajax。
怎么用JSP设计与实现简单聊天室系统
session中记录用户身份信息。
在线用户列表可以用List也可以用Map,注意多线程下的数据完整性。
消息的接收就简单一点在浏览器端用js拉新的消息吧。JQuery不难学,作业什么的糊弄一下也就过去了,不用考虑性能啊可用性啊之类的。
如果是作业的话,聊天记录都不用保存,就放在内存里吧。不用数据库也不用写磁盘。
「聊天室页面要求布局合理,色调搭配适当,页面美观。」……不对啊……看这句话感情你是在找人替你写啊!你自己一点也不打算动手么?亏我这么认真地一条一条地给你分析……看到第五我伤心了。
jsp网页怎么实现即时聊天
jsp中可以实现简单的聊天功能,例子如下:
chat.jsp代码如下:
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
%@ page language="java" contentType="text/html;charset=GB2312"%
html
body
%
try{
request.setCharacterEncoding("GB2312");
String mywords=request.getParameter("message");
String t="";
if(application.getAttribute("words")==null mywords!=null){
t= (String)request.getRemoteAddr() + ":" + mywords + "br/";
application.setAttribute("words",(Object)t);
out.println(t);
}
else if(mywords!=null){
t=(String)application.getAttribute("words");
t += (String)request.getRemoteAddr() + ":" + mywords + "br/";
application.setAttribute("words",(Object)t);
out.println(t);
}
}
catch(Exception e){
}
%
form method="post" action="index.jsp"
input name="message" type="text" size=50
input type="submit" value="发送消息"
/form
/body/html
输出对话内容如下: