电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java web實現簡單聊天室

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

目標

servlet、jsp實現簡單聊天室,用戶通過瀏覽器登錄后進入聊天室,可發送消息進行群聊,點擊聊天信息框中的用戶名可實現拍一拍功能。

基礎知識

數據的存取 setAttribute / getAttribute request請求對象 :有效時間短

ServletContext上下文對象:一直存在于服務器,存儲公有、 共享數據Session會話對象:獨立

網站默認頁面一般是index.jsp

實現思路

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

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

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

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

4.聊天內容顯示message.jsp,不斷自動刷新標簽內設置響應頭,用${上下文變量}顯示聊天內容

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

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

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

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

7.實現拍一拍功能(目的:學習如何進行鏈接操作)每個人名做成一個鏈接,訪問某一個servlet,該servlet可以在聊天信息(上下文變量)里添加一行,xx拍了yyy一下,跳轉回message.jsp問題:鏈接里應該包含yyy參數,servlet?nick=yyy

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

8.多人聊天實現:多種類型瀏覽器

關鍵代碼

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='發送'><br><br><br><br> <a href='http://www.hdgsjgj.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存儲到session變量中 HttpSession session = request.getSession(); session.setAttribute('nickname',nickname); //對nickname進行合法性判斷 if(nickname.length()!=0){ //昵稱合法,則進入聊天室頁面 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存儲聊天信息,并進行合法性判斷 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); } //轉發 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存儲當前用戶昵稱 String nickname = (String)session.getAttribute('nickname'); //name存儲連接中傳遞的參數,即被拍的用戶昵稱 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); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器| 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 氟氨基酮、氯硝柳胺、2-氟苯甲酸、异香兰素-新晨化工 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 视频直播 -摄影摄像-视频拍摄-直播分发| 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 搪瓷反应釜厂家,淄博搪瓷反应釜-淄博卓耀| 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 智能终端_RTU_dcm_北斗星空自动化科技 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 广东之窗网 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 |