整个界面为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. 数据分析库之matplotlib

    一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 轴标签 axisLabel 水平和垂直的轴标签 x轴和y轴刻度 tick 刻度标示 ...

  2. wincc项目移植和复制解决办法

    wincc项目复制 wincc项目不支持直接复制,部分的后台数据库在活跃状态,直接复制wincc项目,会提示跳过活跃状态的数据库,当跳过活跃数据库时,复制的项目也是无效的.在wincc项目管理器中打不 ...

  3. Python 3.6.5 导入pymysql模块出错:No module named 'pymysql'

    检查一下项目设置中的解释器. 查看是否添加PyMySQL模块,如果没有请添加PyMySQL模块

  4. 微信小程序onLaunch修改globalData的值

    //app.js App({ onLaunch: function (options) { //设置场景值到缓存中: //wx.setStorageSync("scene", op ...

  5. java通过StringToKenizer获取字符串中的单词根据空格分离-详情版

    public class DaXie { public static void main(String[] args) { String strin = "Hello Java World! ...

  6. HIkari线程池调优

    <!-- Hikari Datasource --> <bean id="dataSourceHikari" class="com.zaxxer.hik ...

  7. 【阅读笔记】《C程序员 从校园到职场》第八章 算法和协议(Part 2)

    原文链接: 让你提前认识软件开发(19):C语言中的协议及单元测试示例 CSDN博客 https://blog.csdn.net/zhouzhaoxiong1227/article/details/2 ...

  8. .net core 使用 ef core

    第一步: 创建一个.net core console app. 第二步:安装EFCore package 和  design(以前vs是有EF项目模板的,core版本现在没有,所有安装这个工具来创建M ...

  9. leetcode python 009

    ##懒得自己做 ##  验证回文数字int0=63435435print(int(str(int0)[::-1])==int)

  10. php优秀框架codeigniter学习系列——CI_Output类的学习

    这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确 ...