(4)那么此刻,用户不止一个,就可以互相交流了!
示例:gg用户对mm用户说:我喜欢你~
(用户可以选择“表情
”以及字体的“颜色
”~~~)
那么发送之后,gg用户这端显示:
mm用户这端也可以收到:
同理,mm用户也可以回复信息,进行互相聊天:
gg用户这边也会同步更新mm用户发送的聊天消息:
其他的用户再登录也是如此。那么我们来看一下Eclipse的Console控制台显示如何?
初始部署项目时:
gg和mm两个用户登录之后:
两个用户分别点击“退出聊天室”之后:
暂时的界面暂时到此,还有剩下的过多,这里不再展示,下面是代码的一部分实例:
UserInfo.java
package com.wgh.model;
import java.util.Vector;
public class UserInfo {
private static UserInfo user = new UserInfo();
private Vector vector = null;
// 利用private调用构造函数,防止被外界产生新的instance对象
private UserInfo() {
this.vector = new Vector();
}
// 外界使用的instance对象
public static UserInfo getInstance() {
return user;
}
// 增加用户
public boolean addUser(String user) {
if (user != null) {
this.vector.add(user);
return true;
} else {
return false;
}
}
// 获取用户列表
public Vector getList() {
return vector;
}
// 移除用户
public void removeUser(String user) {
if (user != null) {
vector.removeElement(user);
}
}
}
index.jsp
<%@page contentType=“text/html” pageEncoding=“UTF-8” %>
聊天室
login.jsp
<%@page contentType=“text/html” pageEncoding=“UTF-8” %>
<%@ page import=“java.util.*”%>
<%@ page import=“com.wgh.model.UserInfo”%>
<%@ page import=“com.wgh.servlet.UserListener”%>
<%
String username=request.getParameter(“username”); //获得登录用户名
UserInfo user=UserInfo.getInstance(); //获得UserInfo类的对象
session.setMaxInactiveInterval(600); //设置Session的过期时间为10分钟
Vector vector=user.getList();
boolean flag=true; //标记是否登录的变量
//判断用户是否登录
if(vector!=null&&vector.size()>0){
for(int i=0;i<vector.size();i++){
if(user.equals(vector.elementAt(i))){
out.println(“”);
flag=false;
break;
}
}
}
//保存用户信息
if(flag){
UserListener ul=new UserListener();
ul.setUser(username);
session.setAttribute(“user”,ul);
session.setAttribute(“username”,username);
user.addUser(ul.getUser());
//保存当前登录的用户名
session.setAttribute(“loginTime”,new Date().toLocaleString()); //保存登录时间
response.sendRedirect(“Messages?action=loginRoom”);
}
%>
style.css
a {
font-size: 9pt; text-decoration: none; color: #3C404D;
}
td{
font-size:12px;
}
.btn_grey {
font-family: “宋体”; font-size: 9pt;color: #333333;
background-color: #eeeeee;cursor: hand;padding:1px;height:19px;
border-top: 1px solid #FFFFFF;border-right:1px solid #666666;
border-bottom: 1px solid #666666;border-left: 1px solid #FFFFFF;
}
.btn_bg {
background-image:url(…/images/button.jpg); border:#436E9B thin 0px;
width:56px;
height:20px;padding:4px;
color:#FFFFFF;
}
input {
font-family: “宋体”;
font-size: 9pt;
color: #333333;
border: 1px solid #777777;
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
715777262868)]
[外链图片转存中…(img-vSQDeNO4-1715777262868)]
[外链图片转存中…(img-hQPNoskh-1715777262869)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!