整个界面为chat.jsp:

如果用户没有登录,就不能进行聊天。

为将发言的句子传到页面上,要设置一个<iframe></iframe>虚拟框架,将allmessage.jsp的内容转过来

而allmessage.jsp里的内容是通过application获取发言的内容。点击“发言”,会调用chat.do的servlet,

 使用重定向可以将application传到allmessage.jsp

chat.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>直播室</title>
<style>
#main #allmsg{border:solid 1px #ccc; height:400px;}
#main #mymsg input[type=text]{width:800px; height:30px; }
#main #mymsg input[type=submit]{width:80px; height:36px;
font-size:20px; vertical-algin:middle; line-height:30px;}
</style>
<script>
function Clear(){
var frm = document.getElementById("form1");
var obj = document.getElementById("msg");
frm.submit();
obj.value = "";
return false
}
</script>
</head>
<body>
<jsp:include page = "head.jsp?col=4"></jsp:include>
<div id="main" class="layout">
<div id="allmsg">
<iframe src="allmessage.jsp" width="1000" height="400" name="f1" frameborder="0"></iframe>
</div>
<%
String user = (String)session.getAttribute("username");
if(user!=null){
%>
<div id="mymsg">
<form id="form1" action="chat.do" method="post" target="f1" onsubmit="return Clear();">
<input type="text" id="msg" name="message">
<input type="submit" value="发言">
</form>
</div>
<%
}
%>
</div>
<%@ include file="foot.jsp" %>
</body>
</html>

ChatServlet doGet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//获取表单数据
request.setCharacterEncoding("utf-8");
String msg = request.getParameter("message");
System.out.println(msg); //获取session
HttpSession session = request.getSession();
String user = (String)session.getAttribute("username"); //加入application
ServletContext application = this.getServletContext();
String allmsg = (String)application.getAttribute("chat");
if(allmsg == null) {
allmsg = "["+Tools.getTime()+"]"+ user + "说:" + msg + "<br>";
}else {
allmsg += "["+Tools.getTime()+"]"+ user + "说:" + msg + "<br>";
}
application.setAttribute("chat", allmsg);
System.out.println(allmsg); // 重定向
response.sendRedirect("allmessage.jsp");
}

获取时间用这个

Web jsp开发学习——网上直播聊天室的简单开发的更多相关文章

  1. Socket.io文字直播聊天室的简单代码

    直接上代码吧,被注释掉的主要是调试代码,和技术选型的测试代码 var app = require('express')(); var server = require('http').Server(a ...

  2. XMPPFrameWork IOS 开发(六)聊天室

    原始地址:XMPPFrameWork IOS 开发(六)聊天室 聊天室 //初始化聊天室 XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID]; xm ...

  3. 与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室

    原文:与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  4. 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室

    原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  5. 基于Websocket开发的仿微信聊天室

    一.运行环境及涉及技术:----------------------------------* Visual Studio 2019* SQL SERVER 2008 R2* .Net FrameWo ...

  6. java 开发 websocket 网页端聊天室

    博客地址:https://ainyi.com/67 WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端. ...

  7. Android之聊天室设计与开发

    我们要设计和实现一个有聊天室功能的APP,需要服务器不断读取来自客户端的信息,并即时地将信息发送给每个连接到本服务器上的客户端,每个客户端可以向服务器发送消息,并不断地接收来自服务器的消息,并将消息显 ...

  8. 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

  9. Android开发学习之路--MAC下Android Studio开发环境搭建

    自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门 ...

随机推荐

  1. Bupt归队赛, gunfight

    只需要关心是否开枪,上个人和当前这个人的位置关系,转移可以前缀和优化 为了不重复,始终认为第一个就是1,最后答案乘以n #include<bits/stdc++.h> using name ...

  2. 2015-10-15 css3

    图片模糊效果 <img id ="img1" src="image/免费学PS.jpg" style="-webkit-filter: blur ...

  3. vs 设置自动缩进tab转换成空格

    工具   选项   文本编辑器    如下图  选中插入空格 使用技巧: 按Ctrl+K+F组合键,可以自动进行代码对齐.

  4. netty源码分析之二:accept请求

    我在前面说过了server的启动,差不多可以看到netty nio主要的东西包括了:nioEventLoop,nioMessageUnsafe,channelPipeline,channelHandl ...

  5. laravel5.5 调用系统自带登陆认证auth

    1执行命令 php artisan make:auth 2 编辑文件 config/auth guardes 'admin' => [ 'driver' => 'session', 'pr ...

  6. linux c使用socket进行http 通信,并接收任意大小的http响应(三)

    使用socket进行http通信的时候,浏览器返回的响应经常不是固定长度的,有时候很大,有些时候又非常小,十分讨厌.如果仅仅只是为了接收一小段信息,设置一个十分大的缓存,这样又会十分浪费.而且经常更改 ...

  7. Linux中的#和$区别

    [#]代表 root权限[$]代表普通用户

  8. C#获取程序运行时间

    需要用到System.Diagnostics名称空间中的Stopwatch类! Stopwatch类其中有一个属性ElapsedMilliseconds.该属性是获取当前运行时间,以毫秒为单位! 其中 ...

  9. 《JavaScript Dom 编程艺术》读书笔记-第4章

    我的前端入门第一本书是<JavaScript Dom 编程艺术>,网上查找资料发现前端的入门推荐书籍最受好评的就是这本和<JavaScript 高级程序设计>了.之所以先选这本 ...

  10. 实力封装:Unity打包AssetBundle(大结局)

    →→前情提要:让用户选择要打包的文件←← 大结局:更多选择 Unity打包AssetBundle从入门到放弃系列终于要迎来大结局了[小哥哥表示实在写不动了o(╥﹏╥)o]... 经过上一次的教程,其实 ...