首页 > 编程知识 正文

关于jsp网页版聊天系统的信息

时间:2023-12-28 11:56:51 阅读:327863 作者:MQJM

本文目录一览:

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

输出对话内容如下:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。