public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
HttpSession session = request.getSession();
Long lastTime = new Date().getTime();
Long updateTime = (Long)session.getAttribute("updateTime");
String liveState = (String)request.getParameter("action");
int flag = 0;
String enlive = "";
String exlive = "";
String mobile = "";
Long liveroomid = 0l;
Long roomId = 0l;
String servletPath = request.getServletPath();
String islive = (String)session.getAttribute("islive");
if (IeachConstants.IEACE_ONLINE_PEOPLES_SERVLETPATH.indexOf(servletPath) != -1)
{
if (null != islive && !"".equals(islive))
{
flag = Integer.parseInt(islive);
}
if ("goLiveRoom".equals(liveState))
{
UserInfo userInfo = (UserInfo)session.getAttribute("userInfo");
if (flag == 0)
{
if (null != userInfo)
{
roomId = Parmfiltrate.toLong(request, "roomid");
updateTime = new Date().getTime();
session.setAttribute("updateTime", updateTime);
session.setAttribute("islive", "1");
OnlineSum.entryLive(session.getId(),
roomId,
userInfo.getMobile());
}
}
}
else
{
if (flag == 1)
{
OnlineSum.exitLive(session.getId());
session.setAttribute("islive", 0);
}
}
}
if (null != updateTime && lastTime >= updateTime
|| enlive.length() > 3000)
{
int sum =
OnlineSum.getenSessionUser().size()
+ OnlineSum.getexSessionUser().size();
if (sum >= 1)
{
for (Map.Entry<String, Long> entry : OnlineSum.getenSessionUser()
.entrySet())
{
liveroomid =
((Long)OnlineSum.getenSessionUser()
.get((String)entry.getKey()));
if (!OnlineSum.getexSessionUser()
.containsKey(entry.getKey()))
{
mobile =
OnlineSum.getSessionUser()
.get((String)entry.getKey());
enlive +=
liveroomid + ":" + (String)entry.getKey() + ":"
+ mobile + ",";
}
}
for (Map.Entry<String, Long> exit : OnlineSum.getexSessionUser()
.entrySet())
{
if (!OnlineSum.getenSessionUser()
.containsKey(exit.getKey()))
{
exlive += "'" + (String)exit.getKey() + "'" + ",";
}
}
if (exlive.length() > 0)
{
exlive = exlive.substring(0, exlive.length() - 1);
}
if (enlive.length() > 0)
{
enlive = enlive.substring(0, enlive.length() - 1);
}
}
liveOnlineService.getOnlineProcedure(enlive, exlive);
// 初始化用户session
OnlineSum.init();
session.setAttribute("updateTime",
new Date().getTime() + 5 * 60 * 1000);
}
chain.doFilter(request, response);
}
分享到:
相关推荐
从描述来看,这个系统的核心功能是人数统计和智能照明控制,特别是针对室内的环境。它具备在光线不足时自动开启灯光,并且能够检测室内的人数,以实现更为智能和节能的照明管理。 1. **人数统计技术**:这是通过...
"实验室人数统计点路课设" 实验室人数统计电路设计是数字逻辑课程设计的主要内容之一。该设计旨在设计一个利用光线的通断来统计实验室人数的电路。该电路由光电控制电路、脉冲整形电路、控制逻辑电路、计数器电路、...
"实验室人数统计电路设计" 本资源是沈阳航空航天大学课程设计说明书,主题是实验室人数统计电路的设计。该电路设计的目的是统计实验室人数的变化,并提供实时的人数信息。本设计包括光电控制电路、脉冲整形电路、...
设计一个利用光线的通断来统计实验室人数的电路。 设计两路光控电路,一路放置在门外,另一路设置在门里,当有人通过门口时(无论是进入或是走出房间),都会先触发一个光控电路,再触发另一个光控电路。要求根据...
其次,聊天室在线人数统计:在描述中提到的“本房间在线人数”是指特定聊天室内的活跃用户数,这通常通过跟踪每个用户的状态实现,比如每当用户发送消息或心跳请求时,服务器都会更新其在线状态。“本服务器共在线...
基于单片机的红外线人数统计设计 一、课题技术要求和性能指标 技术要求: 1. 用红外探测器检测入场,在场与出场人数。 2. 计算出展馆内现有人数并显示出来,当人数超过某个限制值时通过声卡发出警报声。 性能...
本文介绍的,就是以红外传感器为基础的一套楼宇房间人数统计系统。 1 系统总体设计原理 该系统的总体结构框图如图1所示:通过RE200B热释电红外传感器对周围环境的红外线进行实时数据采集。当有人进入传感器的...
人数计数器是一种常见的电子设备,它用于统计进入或离开特定区域的人数。在这个项目中,我们关注的是一个基于LCD显示屏的电子计数器,它能够最大计数到100亿,这是一个相当大的计数范围,适用于各种场合,如商场、...
间数量、房间编号、房间床位、实际入住人数,实际入住学生信息,年份、月份、宿舍用电 量(度数)、用水量(度数)等,管理员信息包括:工号、姓名、登录密码。【功能要求】 (1) 定义用户类,用户包括学生和管理员。 (2)...
本文介绍的,就是以红外传感器为基础的一套楼宇房间人数统计系统。 1 系统总体设计原理 该系统的总体结构框图如图1所示:通过RE200B热释电红外传感器对周围环境的红外线进行实时数据采集。当有人进入传感器的...
1. 课程设计目的和意义 4 ...5.2.11 客房在住人数统计_cx 12 5.2.12 客满房间_cx 12 5.2.13 未满房间_cx 13 5.2.14 空房_cx 13 5.2.15 未满非空房间_cx1 13 5.2.16 未满非空房间_cx2 13 6. 设计总结 13
酒店自用房是指饭店用于员工住宿或其他非营业用途的房间,这部分不计入出租统计,但会影响整体的客房利用率。 再者,待修理房的数量是评估饭店维护水平和客房服务质量的重要参考。待修理房过多可能影响客户体验,...
7. 房间号编码:2017中20表示楼层,17表示房间号。 8. 电话号码:0755-61376661中的0755是区号,表示城市或地区。 9. 身份证号码:360429197501083312,前6位表示地区码,7-14位表示出生日期(1975年1月8日)。 10. ...
这两种方法在统计人数时具有不同的效率特点,特别是在处理大规模问题时。 首先,蛮力法是最直观的方式,每个人依次被计数,例如在有21个人的教室里,需要计数21次。这种方法简单易懂,但效率低下,当人数增加时,...
### 概率论和数理统计第四版答案解析 #### 第一章:概率论的基本概念 ##### 1. 随机试验的样本空间 **(1)记录一个小班一次数学考试的平均分数(以百分制记分)** 样本空间表示为所有可能的小班平均分数的集合...
日结算明细表,统计当天的结算收入,挂账数量,入住人数,营业收入等 5. 系统管理,设置不同的权限 (1)、 系统管理员,可以对所有用户的注册和注销进行管理,可修改自己的密码,其余的部分不可用。 (2)、 前台...
统计当前哪些房间已有旅客入住,入住旅客人数,今日离店的旅客数,已接收到的预定订单数,今日预定旅客的入住人数,今日收入等; 实时查询旅客所在房间号,以及查询某房间的旅客姓名等; 建立日志文件,对旅客信息、...
4. 统计报道人员信息:汇总参会人员的统计数据,如总人数、不同类别的人数等。 5. 修改报道人员信息:允许用户更新已存在的参会人员信息。 6. 删除报道人员信息:根据用户的选择移除某位参会人员的信息。 【总结】 ...
通过这样的统计表,管理者可以实时了解会所的经营状况,对比不同时间段的收入变化,找出收入高峰和低谷的原因,从而做出调整策略,如优化服务时间、推出促销活动或改进服务质量。同时,这些数据也是制定预算、预测...
宿舍管理系统包括用户登录,登录进入后有系统管理,用户管理,房间管理,住宿管理,费用管理,违纪管理,数据库也包含在其中!欢迎下载使用。 第一模块:系统管理部分 ...1、 房间统计 2、 人数统计 3、 水电费统计