关于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

输出对话内容如下:

原创文章,作者:RQHE,如若转载,请注明出处:https://www.506064.com/n/135633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RQHERQHE
上一篇 2024-10-04 00:14
下一篇 2024-10-04 00:14

相关推荐

  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • 分销系统开发搭建

    本文主要介绍如何搭建一套完整的分销系统,从需求分析、技术选型、开发、部署等方面进行说明。 一、需求分析 在进行分销系统的开发之前,我们首先需要对系统进行需求分析。一般来说,分销系统…

    编程 2025-04-29
  • python爬取网页并生成表格

    本文将从以下几个方面详细介绍如何使用Python爬取网页数据并生成表格: 一、获取网页数据 获取网页数据的一般思路是通过HTTP请求获取网页内容,最常用的方式是使用Python库r…

    编程 2025-04-28
  • 网页防篡改的重要性和市场占有率

    网页防篡改对于保护网站安全和用户利益至关重要,而市场上针对网页防篡改的产品和服务也呈现出不断增长的趋势。 一、市场占有率 据不完全统计,目前全球各类网页防篡改产品和服务的市场规模已…

    编程 2025-04-28
  • 使用Python爬虫获取电影信息的实现方法

    本文将介绍如何使用Python编写爬虫程序,来获取和处理电影数据。需要了解基本的Python编程语言知识,并使用BeautifulSoup库和Requests库进行爬取。 一、准备…

    编程 2025-04-28
  • EulerOS V2R7:企业级开发首选系统

    本文将从多个方面为您介绍EulerOS V2R7,包括系统简介、安全性、易用性、灵活性和应用场景等。 一、系统简介 EulerOS V2R7是一个华为公司开发的企业级操作系统,该系…

    编程 2025-04-28
  • 云盘开源系统哪个好?

    本文将会介绍几种目前主流的云盘开源系统,从不同方面对它们做出分析比较,以此来确定哪个云盘开源系统是最适合您的。 一、Seafile Seafile是一款非常出色的云盘开源系统,它的…

    编程 2025-04-28

发表回复

登录后才能评论