对于jsp简单在线聊天系统,简单的利用Session、Request、Application等知识点。
        基于jsp简单多人在线聊天系统源码,分为公聊、私聊以及网站客服,网站多用户,十分容易理解!!!

不加以多说,直接源码展示。
        原源码在大佬用户Summer__show_,目前该大佬用户已经删除文章,我在其源码基础上进行一个改编,并且进行一些优化。如有侵权请告知。
        就比如我现在的网址为https://blog.csdn.net/white_mvlog/online.jsp?username=white_mvlog

   <%@ page contentType="text/html;charset=UTF-8" language="java"pageEncoding="UTF-8"%><%@ page import="java.util.*"%><%//每隔15秒进行一次页面刷新,刷新聊天记录response.setHeader("refresh", "15");//设置获取的值格式为utf-8request.setCharacterEncoding("UTF-8");//获取网址的username的属性值String username = request.getParameter("username");//从applicaton作用域中取出用户列表  List<Object> users = (List<Object>) application.getAttribute("users");//如果该用户列表还不存在,实例化该用户列表 if (users == null) {users = new ArrayList<Object>();}//查看当前列表中是否包含当前的登陆用户  if (users.contains(username)) {//设置提示信息  request.setAttribute("msg", "该用户已经登陆,请重新登陆");System.out.println(users.size());if (users.size() != 0) {for (int i = 0; i < users.size(); i++) {if (username.equals(users.get(i))) {users.remove(i);i--;}}}}//将当前登陆用户名加入该用户列表 users.add(username);application.setAttribute("users", users);session.setAttribute("user", username);System.out.println("xian");List<Object> msgs = (List<Object>) application.getAttribute("msgs");List<Object> to_sb = (List<Object>) application.getAttribute("private");List<Object> from_sb = (List<Object>) application.getAttribute("S_private");String user1 = (String) session.getAttribute("user");if (msgs == null) {msgs = new ArrayList<Object>();}if (to_sb == null) {to_sb = new ArrayList<Object>();}if (from_sb == null) {from_sb = new ArrayList<Object>();}%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>客服</title></head><body><div class="divhead1"><div class="headee"><h3>在线客服</h3></div><div class="content"><div class="list"><div class="bodyhead">在线人数<%=users.size() %>人</div><ul><%for (int i = 0; i < users.size(); i++) {String username2 = (String) users.get(i);%><li><%=username2 %></li><%}%></ul></div><div class="dad"><div class="bodyhead"></div><div class="msg"><%for (int i = 0; i < msgs.size(); i++) {//查看谁发给谁了什么信息System.out.println(msgs.get(i) + "and " + to_sb.get(i)+ " from " + from_sb.get(i));}try {for (int i = 0; i < msgs.size(); i++) {String t1 = (String) msgs.get(i);String t2 = (String) to_sb.get(i);String t3 = (String) from_sb.get(i);if (t2.equals(username) || t2.equals("所有人")) {//发送给我或者发送给所有人的%><p><span class="ith"><%=t3 %></span><span class="it"><%=t1 %></span></p><br /><%//如果对方回复已解决,则删除他的登录记录,结束聊天if(t1.equals("已解决")){users.remove(t3);}} else if(t3.equals(username)){//我发送的%><p><span class="meh"><%=t3 %></span><span class="me"><%=t1 %></span></p><br /><%}else{System.out.println(t2 + "跟他不同" + "username" + "或者跟他"+ user1);}}} catch (Exception e) {}%></div><div class="send"><formclass="if"action="online.jsp?username=<%=username%>"method="post"><%System.out.println(session.getAttribute("user"));//在这里可以区分客服与用户,客服拥有select选项值的0也就是发送信息给所有人的功能if(username.equest("white")){%><select name="select" class="ss"><option value="0">所有人</option><%for (int i = 0; i < users.size(); i++) {username = (String) users.get(i);%><option value="<%=i + 1%>"><%=username%></option><%}}else{//反之,用户拥有select选项值的666也就是发送信息给客服的功能%><select name="select" class="ss"><!--要选择客服的话select选项值为666--><option value="666">客服</option><%}%></select><textarea id="dope"style="width: 99%; height: 75px; border: none; outline: none;"name="message" rows cols></textarea><input type="submit" value="发送" class="sendBtn" /></div></form><%String user = (String) session.getAttribute("user");request.setCharacterEncoding("UTF-8");String message = request.getParameter("message");String to = "";try {//被发送消息方List<Object> tmp = (List<Object>) application.getAttribute("users");String SS = request.getParameter("select");int a = Integer.parseInt(SS);//发送给所有人则在select选择项值为0if (a == 0)to = "所有人";//发送给所有人则在select选择项值为666else if(a==666)to = "white";elseto = (String) tmp.get(a - 1);} catch (Exception e) {}System.out.println("正在尝试");for (int i = 0; i < msgs.size(); i++) {System.out.println(msgs.get(i) + "c");}if (message != null && !message.equals("")) {//msgs.add(user + "发消息给" + to + "  :  " + message + "<br/>");msgs.add( message);to_sb.add(to);from_sb.add(user);System.out.println("尝试");application.setAttribute("msgs", msgs);application.setAttribute("private", to_sb);application.setAttribute("S_private", from_sb);response.sendRedirect("online.jsp?username=" + username);}%></div></div></div></body></html>

在源码中有进行详细的注释说明,不懂的可以在评论留言哟。

复制到自己的小项目即可使用哟。

jsp简单多人在线聊天系统(非常容易理解的公聊、私聊)相关推荐

  1. 多人聊天功能代码php,PHP+swoole实现简单多人在线聊天群发效果

    下面本篇文章主要给大家介绍一下PHP+swoole如何实现简单多人在线聊天群发,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 由于本文的能力有限,有好多聊天逻辑的细节没有实现,只实现 ...

  2. 基于C语言实现的多人在线聊天系统(客户端和服务端源码)

    资源下载地址:https://download.csdn.net/download/sheziqiong/85768602 资源下载地址:https://download.csdn.net/downl ...

  3. Linux项目--多人在线聊天系统的开发

    项目名称:群聊工具的开发 系统原理:该项目是源于<Linux高性能服务器编程>一书中所提到的多进程或者多线程编程的部分,利用多线程编程来实现一个简单的多人聊天室.在多进程或多线程编程中,最 ...

  4. PHP多人聊天系统,ttltCha​tPHP多人在线聊天系统软件源码 v0.0.12

    ttltChatPHP多人在线聊天系统软件源码 v0.0.12 ttltChat(online_chat)在线聊天软件是用PHP写的在线聊天软件:引入online_chat简单.方便:online_c ...

  5. 如何简单的创建一个多人在线聊天室

    学习目标: 在本教程中,我们将要使用PHP和jQuery创建一个简单的在线聊天工具. 这种实用性的模块对于你想要有实时在线客户支持系统的网站可以说是完美. 废话不多说直接开始. 步骤1:HTML的代码 ...

  6. Unity联网之使用Socket简单实现多人在线聊天室(一)

    「前言」 之前在一直在写lua联网等一些知识,虽然lua重要,但C#联网也必不可少是吧.所以呢,本篇博客就主要介绍如何使用Unity和C#在实现多人在线聊天室. 服务器 客户端工作原理:(通过消息类型 ...

  7. jsp实现在线聊天系统

    在线聊天系统 大概介绍 就是一个在线聊天平台. 功能 用户登陆.注册 聊天室的创建.查看.加入 聊天信息的查询.发布 聊天室人数限制 聊天上线提示和下线提示 涉及相关技术 表单开发 内置对象 jdbc ...

  8. 一款二次元的Web多人在线网络聊天系统:Fiora安装及使用

    说明:Fiora是一款偏二次元的Web多人在线聊天应用,使用Node.js.Mongodb.Socket.io和React编写,使用起来还行,挺简洁的,这里水个搭建教程,有兴趣的可以玩玩. 截图 功能 ...

  9. 宝塔面板+轻松部署一款二次元的Web多人在线网络聊天系统fiora聊天室

    前言 Fiora是一款偏二次元的Web多人在线聊天应用,是使用Node.js.Mongodb.Socket.io和React编写的,使用起来简洁.方便,在这里使用宝塔面板+Fiora安装教程分享给大家 ...

  10. 2023最新Fiora二次元的Web多人在线网络聊天系统源码/UI漂亮/很有意思

    正文: Fiora是一款偏二次元的 Web多人在线聊天应用,使用 Node.js.Mongodb.Socket.io和 React编写,UI漂亮,很有意思,可以当做在线客服.在线讨论之类的. 功能: ...

最新文章

  1. MySQL 高级 - 存储过程 - 语法 - repeat循环
  2. mongodb添加创建修改时间_mongodb副本集生产环境下部署案例,推荐一个主两个从三台机器...
  3. mysql use mysql_1、设置mysql远程访问执行mysql 命令进入mysql 命令模式,执行如下SQL代码mysql use mysql; mysql GRANT ALL ON ...
  4. Python try/except/finally等
  5. android人脸情绪识别器,基于Android平台的人脸表情识别系统的设计与实现
  6. 微信公众平台开发(120) 微信支付报关接口
  7. go 获取屏幕分辨率_CS:GO枪神的自我修养 高刷电竞显示器推荐
  8. 全球最大照片网站 Unsplash 开放图片检索数据集
  9. gcd时间复杂度分析
  10. SQL Server数据库的管理及维护
  11. Amy-Tabb机器人世界手眼标定(1、环境搭配)
  12. 经典语录,至理名言,人生百态
  13. RBAC权限框架_MVC权限框架
  14. git push时缺少Change-Id报错
  15. 抽象思维能力训练随感
  16. 超微服务器硬盘红灯_服务器硬盘亮红灯崩溃怎么办?数据丢失都是怎么找回的...
  17. java list集合包含_Java 中的集合类包括 ArrayList 、 Linke
  18. 2015中国程序员生存报告
  19. 计算机主机电源怎么换,如何更换电脑电源风扇
  20. 面经手册 · 开篇《面试官都问我啥》

热门文章

  1. iOS资源大全中文版
  2. matlab计算机械臂素的,机械臂动力学——动力学建模
  3. 三节点潮流计算matlab,电力系统分析大作业matlab三机九节点潮流计算报告.doc
  4. 计算机关机的命令行,自动关机命令,windows自动关机命令
  5. 深度学习简明教程系列 —— 基础知识(合集)
  6. 客户服务与工单管理系统—工单管理
  7. JSP 高校后勤报修管理系统myeclipse开发mysql数据库bs框架java编程serlvet(MVC)结构详细设计
  8. html5 如何打包成apk,将H5封装成android应用APK文件的几种方法
  9. 大学生个人网页设计 HTML个人网页制作 web个人网站模板 简单静态HTML个人网页作品
  10. 能源路由器 :分布式智能电网应用的混合通信体系结构