關於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/zh-tw/n/135633.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RQHE的頭像RQHE
上一篇 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

發表回復

登錄後才能評論