亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

java web實(shí)現(xiàn)簡單聊天室

瀏覽:3日期:2022-08-20 16:41:31

目標(biāo)

servlet、jsp實(shí)現(xiàn)簡單聊天室,用戶通過瀏覽器登錄后進(jìn)入聊天室,可發(fā)送消息進(jìn)行群聊,點(diǎn)擊聊天信息框中的用戶名可實(shí)現(xiàn)拍一拍功能。

基礎(chǔ)知識(shí)

數(shù)據(jù)的存取 setAttribute / getAttribute request請求對象 :有效時(shí)間短

ServletContext上下文對象:一直存在于服務(wù)器,存儲(chǔ)公有、 共享數(shù)據(jù)Session會(huì)話對象:獨(dú)立

網(wǎng)站默認(rèn)頁面一般是index.jsp

實(shí)現(xiàn)思路

1.登錄頁面 login.jsp 輸入昵稱

2.編寫一個(gè)LoginSevlet,處理登錄提交的昵稱,保存登錄昵稱到session(會(huì)話變量)若昵稱合法 if(nickname.length()!=0),跳轉(zhuǎn)到聊天室,不合法回到登錄頁面

3.編寫聊天室頁面chatroom.jsp ,是一個(gè)框架,把多個(gè)頁面集成到一個(gè)頁面中

<iframe src='http://www.aoyou183.cn/bcjs/message.jsp' height='70%'> </iframe><iframe src='http://www.aoyou183.cn/bcjs/input.jsp' height='25%'> </iframe>

4.聊天內(nèi)容顯示message.jsp,不斷自動(dòng)刷新標(biāo)簽內(nèi)設(shè)置響應(yīng)頭,用${上下文變量}顯示聊天內(nèi)容

<meta http-equiv='refresh' content='1'>

5.input.jsp(不刷新)輸入聊天內(nèi)容文本框text,點(diǎn)擊發(fā)送聊天內(nèi)容按鈕時(shí),將把文本框的聊天信息提交給ChatServlet處理。下方有超鏈接可退出聊天室。

<a href='http://www.aoyou183.cn/bcjs/login.jsp' target='_top'>退出聊天室</a>

6.ChatServlet:檢測聊天信息合法性,把聊天信息加入到ServletContext變量(字符串)中,(每次都將xx:xxxx加入上下文字符串)判斷是否存在該變量,存在則直接讀取現(xiàn)有聊天內(nèi)容,把數(shù)據(jù)加入進(jìn)去后,重新寫回上下文變量

7.實(shí)現(xiàn)拍一拍功能(目的:學(xué)習(xí)如何進(jìn)行鏈接操作)每個(gè)人名做成一個(gè)鏈接,訪問某一個(gè)servlet,該servlet可以在聊天信息(上下文變量)里添加一行,xx拍了yyy一下,跳轉(zhuǎn)回message.jsp問題:鏈接里應(yīng)該包含yyy參數(shù),servlet?nick=yyy

say = '<a href=’NickServlet?nickname='+nickname+'’target=’_parent’>'+nickname+'</a>'+':'+text;

8.多人聊天實(shí)現(xiàn):多種類型瀏覽器

關(guān)鍵代碼

login.jsp

昵稱:<input type='text' name='nickname'/><br> <br><br><input type='submit' value='登錄'/><input type='reset' value='取消'/>

input.jsp

<form action='input.do' method='post'> <input type='text' size='50' name='text'/> <input type='submit' value='發(fā)送'><br><br><br><br> <a href='http://www.aoyou183.cn/bcjs/login.jsp' rel='external nofollow' rel='external nofollow' target='_top'>退出聊天室</a></form>

message.jsp

<h3>一起來聊天吧</h3>${says}

LoginServlet.java

package chatting;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;@WebServlet(name = 'LoginServlet2',urlPatterns = {'/login.do'})public class LoginServlet2 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //避免亂碼 response.setContentType('text/html;charset=utf-8'); request.setCharacterEncoding('utf-8'); //nickname保存用戶昵稱 String nickname = request.getParameter('nickname'); //nickname存儲(chǔ)到session變量中 HttpSession session = request.getSession(); session.setAttribute('nickname',nickname); //對nickname進(jìn)行合法性判斷 if(nickname.length()!=0){ //昵稱合法,則進(jìn)入聊天室頁面 request.getRequestDispatcher('/chatroom.jsp').forward(request,response); } else{ //昵稱不合法,返回登陸頁面 request.getRequestDispatcher('/login.jsp').forward(request,response); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }}

ChatServlet.java

package chatting;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.util.Vector;@WebServlet(name = 'ChatServlet',urlPatterns = '/input.do')public class ChatServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //防止亂碼 request.setCharacterEncoding('utf-8'); response.setContentType('text/html;charset=utf-8'); HttpSession session = request.getSession(); String text = request.getParameter('text'); //text存儲(chǔ)聊天信息,并進(jìn)行合法性判斷 if (text.length()!=0) { String say =new String(); //獲取session中的昵稱 String nickname = (String)session.getAttribute('nickname'); //將昵稱作為鏈接,并傳參 say = '<a href=’NickServlet?nickname='+nickname+'’target=’_parent’>'+nickname+'</a>'+':'+text; String says = new String(); //將昵稱和聊天信息一起放在上下文變量 ServletContext context = getServletContext(); if(context.getAttribute('says')!=null){ says = context.getAttribute('says') + say + '<br>'; } else{ says = say + '<br>'; } context.setAttribute('says', says); request.setAttribute('says', says); } //轉(zhuǎn)發(fā) RequestDispatcher dispatcher = request.getRequestDispatcher('/input.jsp'); dispatcher.forward(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }}

NickServlet.java

package chatting;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;@WebServlet(name = 'NickServlet',urlPatterns = '/NickServlet')public class NickServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType('text/html;charset=UTF-8'); request.setCharacterEncoding('utf-8'); //將拍一拍放到上下文變量says中 一起輸出 HttpSession session = request.getSession(); //nickname存儲(chǔ)當(dāng)前用戶昵稱 String nickname = (String)session.getAttribute('nickname'); //name存儲(chǔ)連接中傳遞的參數(shù),即被拍的用戶昵稱 String name = java.net.URLDecoder.decode(request.getParameter('nickname'),'UTF-8'); String pick = nickname+'拍了拍'+name+'<br>'; ServletContext context = request.getServletContext(); String says = context.getAttribute('says')+pick; context.setAttribute('says',says); RequestDispatcher dispatcher = request.getRequestDispatcher('/chatroom.jsp'); dispatcher.forward(request, response); }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 色多多在深夜释放自己黄 | 视频国产一区 | 中国三级黄色 | 国产麻豆高清在线观看 | 99久久免费国产精精品 | 国产精品国产三级国产在线观看 | 亚洲美女在线播放 | 草草视频网站 | 97色片| 国产一级大片 | 欧美一级a俄罗斯毛片 | 国产成人一区二区精品非洲 | 欧美毛片日韩一级在线 | 欧美激情一级毛片在 | 青青青国产依人在在线观看高 | 久久精品国产精品亚洲婷婷 | 日本毛片在线 | 精品小视频在线 | 日本高清免费毛片久久看 | 国产亚洲精品午夜一区 | 一本色道久久综合狠狠躁篇 | a一级视频 | 欧美a级片免费看 | 六月婷婷中文字幕 | 色老99久久九九爱精品69堂 | 亚洲欧美日韩中文不卡 | jizz国产在线观看 | 日韩毛片免费看 | 国产精品久久久久久麻豆一区 | 国产a一级 | 黄网站在线观看永久免费 | 亚洲第一se情网站 | 日本一级级特黄特色大片 | 日本色黄视频 | 在线免费黄色网址 | 成人看片又黄又爽 | 久久黄色网址 | 成人不卡在线 | 亚洲欧美日韩色 | 狠狠亚洲婷婷综合色香 | 日韩欧美国产精品第一页不卡 |