本文目錄一覽:
- 1、JSP在線聊天系統
- 2、用JSP實現一個簡易的網頁版聊天室。
- 3、JSP在線聊天系統退出的問題
- 4、jsp實現在線聊天功能
- 5、怎麼用JSP設計與實現簡單聊天室系統
- 6、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-hk/n/135633.html