㈠ javaweb寫的聊天網頁是如何向客戶端發送消息
你說的這個是一種推送技術,由伺服器主動將數據推送給客戶端
Tomcat8已經很好的支持web socket 了webSocket已經慢慢普及與Html5做這樣的推送
而你用javaweb的話,直接導入Tomcat.jar就可以使用webSocket了
網上有很多例子
㈡ (JAVA WEB)網頁版聊天室將,所有人分組(有組號),如何實現只有同一個組號的人才能進入
簡單的辦法就是在User即用戶中定義組號的這個欄位基本判斷組號就行了,進入組的數量欄位基本能實現這個功能。
比價好的辦法是建立,User,group,room這個3個對象,然後在組中設立User對象的集合,在room也設置User對象的集合,User中設置組和room的集合,限制集合的大小為2如果超過2那麼限制groop增加這個User對象。
㈢ 利用JavaWeb設計簡易聊天室,具體要求看補充
利用JavaWeb設計簡易聊天室
這樣你什麼柑橘
比較
㈣ 聊天室發言用javaweb什麼實現
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding right ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Apache Tomcat WebSocket Examples: Chat</title>
<style type="text/css"><![CDATA[
input#chat {
width: 410px
}
#console-container {
width: 400px;
}
#console {
border: 1px solid #CCCCCC;
border-right-color: #999999;
border-bottom-color: #999999;
height: 170px;
overflow-y: scroll;
padding: 5px;
width: 100%;
}
#console p {
padding: 0;
margin: 0;
}
]]></style>
<script type="application/javascript"><![CDATA[
"use strict";
var Chat = {};
Chat.socket = null;
Chat.connect = (function(host) {
if ('WebSocket' in window) {
Chat.socket = new WebSocket(host);
} else if ('MozWebSocket' in window) {
Chat.socket = new MozWebSocket(host);
} else {
Console.log('Error: WebSocket is not supported by this browser.');
return;
}
Chat.socket.onopen = function () {
Console.log('Info: WebSocket connection opened.');
document.getElementById('chat').onkeydown = function(event) {
if (event.keyCode == 13) {
Chat.sendMessage();
}
};
};
Chat.socket.onclose = function () {
document.getElementById('chat').onkeydown = null;
Console.log('Info: WebSocket closed.');
};
Chat.socket.onmessage = function (message) {
Console.log(message.data);
};
});
Chat.initialize = function() {
if (window.location.protocol == 'http:') {
Chat.connect('ws://' + window.location.host + '/websocket/chat');
} else {
Chat.connect('wss://' + window.location.host + '/websocket/chat');
}
};
Chat.sendMessage = (function() {
var message = document.getElementById('chat').value;
if (message != '') {
Chat.socket.send(message);
document.getElementById('chat').value = '';
}
});
var Console = {};
Console.log = (function(message) {
var console = document.getElementById('console');
var p = document.createElement('p');
p.style.wordWrap = 'break-word';
p.innerHTML = message;
console.appendChild(p);
while (console.childNodes.length > 25) {
console.removeChild(console.firstChild);
}
console.scrollTop = console.scrollHeight;
});
Chat.initialize();
document.addEventListener("DOMContentLoaded", function() {
// Remove elements with "noscript" class - <noscript> is not allowed in XHTML
var noscripts = document.getElementsByClassName("noscript");
for (var i = 0; i < noscripts.length; i++) {
noscripts[i].parentNode.removeChild(noscripts[i]);
}
}, false);
]]></script>
</head>
<body>
<div class="noscript"><h2 style="color: #ff0000">Seems your browser doesn't support Javascript! Websockets rely on Javascript being enabled. Please enable
Javascript and reload this page!</h2></div>
<div>
<p>
<input type="text" placeholder="type and press enter to chat" id="chat" />
</p>
<div id="console-container">
<div id="console"/>
</div>
</div>
</body>
</html>
客戶端的代碼也是很簡單,就是載入頁面的時候,創建跟伺服器的WebSocket連接。
Chat.connect('ws://' + window.location.host + '/websocket/chat');
然後就是發送信息,接收信息了。
完成上述代碼之後,就可以部署了。這里我使用的servlet容器是tomcat 8。以下是我的配置:
<Context path="/websocket" docBase="/Users/cevin/Documents/workspace/tomcat_websocket_chat/web" reloadable="true"/>
部署結束,啟動tomcat,訪問:http://localhost:8080/websocket/chat.xhtml,見到下面這個頁面,說明部署成功了。
㈤ javaweb聊天室項目,用戶上線後如果直接退出瀏覽器,可能做到像客戶端這樣即時的顯示用戶下線嗎
一般的話都需要自己手動點退出,這樣伺服器端才會刪除Session,
確保下線,不然的話你自己寫Ajax定時看下是否還在,不然應該沒辦法
㈥ java的一個簡單聊天室的系統結構,大概的跟我說一下。
定義要求:⑴完善的支持中文。由於Java編譯器版本及運行環境的差異等原因,在Java語言的中文處理中常出現亂碼等現象,表現在中文顯示與網路傳輸不正常、中文不能輸入等方面。在這個聊天室系統中我們將徹底解決中文的兼容性問題。⑵具有健壯性。即聊天室系統能夠處理各種異常,能夠識別和控制客戶端的各種行為,能夠返回清理不正常退出後所分配的系統資源,能夠踢出超時連接用戶以減輕伺服器負載等。雖然Java語言本身能夠自動收集處理無用的對象,但我們仍然需要作一定的清理工作。⑶廣泛的適應性。因為我們不能要求聊天用戶必須使用某種瀏覽器或操作系統,因此所編寫的Java程序,尤其是Applet,必須能在各種平台的各個版本的瀏覽器上都能正常運行。考慮到網路用戶的使用情況,我們定的標準是能適應以下版本的瀏覽器:Netscape 3.x,Netscape Communicator 4.x,Internet Explorer 3.x、4.x、5.x中英文版。設計實現:基於Java的Web聊天室系統包括聊天伺服器和客戶端兩部分。聊天伺服器是一個Java Application,與Web伺服器程序運行在同一機器上。客戶端部分即是一個含Java Applet的HTML頁面,它由Web伺服器傳送給客戶端瀏覽器,交由瀏覽器的Java虛擬機(VM)解釋執行。該Applet初始化後與聊天伺服器進行連接,聊天伺服器對於每個連接請求產生一個連接線程(Connection Thread),來維護和管理與該客戶端的會話。客戶端的發言被傳送到伺服器端後由其向其他客戶進行廣播(Broadcast),達到相互聊天的目的。 在聊天伺服器中,我們使用哈希表(Hashtable)來存儲所有的連接線程。主線程為ChatServer,對於每個新的客戶連接請求產生一個Connection線程。同時我們還運行了一個檢查線程CheckActiveTimer,它相當於一個定時器,每隔一定時間就掃描所有的客戶連接線程(即掃描Hashtable),檢查每個客戶連接是否超時(例如很長時間沒有發言或者死機),並給出警告或直接踢出(Kick)用戶。
㈦ 怎麼用java做區域網的聊天工具(聊天室)
呵呵,樓主您好!要用Java做聊天室說簡單也不簡單,但是說難呢也不難.
說簡單點,就是會話跟蹤技術(我個人這樣理解).要做聊天室,您需要
使用到的工具: tomcat 伺服器(因為是免費的,其他也可以哦,呵呵).
Myeclipse(sun公司提供的編寫Java程序的工具,別說你不知道哈,
哪樣的話我就暈倒了哦,呵呵)
頁面框架的設計:index.jsp(聊天室主頁面)index_top.jsp(聊天室的頂部頁面)
usersonline.jsp(在線人數的統計及顯示頁面) sendMessage.jsp(發送信息的頁面)
showMessage.jsp(顯示聊天信息的頁面)register.jsp(用戶注冊的頁面)
login.jsp(用戶登錄頁面)
當然,這是最簡單的設計方式咯.您也可以設計得更好點.
頁面介紹與功能:
index.jsp 主要是聊天室的主頁面.由上中下3個框架組成,中間部分在分為
左右2個框架.實際上index.jsp就是一個由於5個框架組成的頁面
頂部框架:放index_top.jsp頁面.可以設計自己聊天室的特色(比如說:logo)
中間部分的左邊框架:showMessage.jsp 顯示聊天的信息
中間部分的右邊框架:usersonline.jsp(在線人數的統計及顯示頁面)
底部框架:sendMessage.jsp 這個發送信息的jsp頁面.不多說吧
聊天室的框架的設計大楷就是這樣子咯
實現聊天:
1.編寫一個servlet,用戶處理的信息(包括驗證用戶是否登錄和聊天信息)。
2.用戶發送信息之後,將發送的信息存放到Application中(群聊)(放在session中就是私聊)
3.顯示信息的頁面每個XX秒中獲取session或者Application中的數據顯示出來就OK了
更多的東西還是需要您學習Ajax之後再做,會有不一樣的效果哦。祝您成功喲.呵呵
㈧ 用java做一個聊天室系統需要用到哪些知識呢
以前做過一個,界面用swing表現就可以了,程序主要用到socket編程,不需要框架吧,DB,mysql,oracle都可以
如果用 web,直接用js+xml文件就可以實現了
㈨ javaweb 項目做在線聊天室 什麼思路,什麼技
最搞笑的對聯
㈩ javaweb問題
首先聊天室用web做不太好,因為聊天室需要伺服器頻繁的發送消息到客戶端,web只能瀏覽器通知伺服器來取得消息,要想不間斷的獲得最新消息需要不斷刷新或者調用ajax,對伺服器壓力很大。
如果非要用web做的話,需要使用javascript的onunload事件,這個事件在頁面關閉時觸發,你可以注冊事件處理函數向伺服器發送一條ajax消息,通知伺服器用戶已退出,執行登出操作修改欄位