Struts2实现简单的在线人数统计
用Strust2框架的知识简单实现一个统计在线人数的问题。
1 搭建开发环境;(配置文件,jar包等问题)
2 index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body> <!-- <a href="product_input.action">welcome!</a>
<br><br> -->
<a href="login.action">注册页面</a>
<br><br>
</body>
</html>
3 login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="user-login.action" method="post">
username:<input type="text" name="username"/>
<br><br>
<input type="Submit" value="Submit"/>
</form>
</body>
</html>
4 success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>登陆成功!</h2>
<br><br>
Welcome:${sessionScope.username }
<br><br> 当前在线人数:${applicationScope.count }
<br><br> <a href="user-logout.action">退出登录</a>
<br><br> </body>
</html>
5 logout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>退出成功!</h2>
--当前人数:${count }
<br><br>
</body>
</html>
6 UserAction.java
package com.exe.login; import java.util.Map; import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.SessionAware; public class UserAction implements SessionAware,ApplicationAware{ private String username;
public void setName(String username) {
this.username = username;
} //退出
public String logout(){
Integer count = (Integer)application.get("count");
if(count==null)
count=0; if(count!= null && count > 0){
count--;
application.put("count", count);
} //使session失效
((SessionMap)session).invalidate();
System.out.println("退出一个人, 当前在线人数:"+count);
return "logout-success";
} public String login(){
int index=0;
//存储用户信息,放入Session域中
//1 获取session:实现SessionAware接口;
//2 获取登录信息,通过setter方法;
//3 将用户信息存储在session域中;
session.put("username", username); //1 获取当前在线人数
Integer count = (Integer)application.get("count");
if(count==null)
count=0;
//2 人数+1
count++;
//3 存储登陆人数
application.put("count", count);
System.out.println("UserAction 当前在线人数:"+count); return "login-success";
} private Map<String,Object> session; @Override
public void setSession(Map<String, Object> session) {
this.session=session;
} private Map<String,Object> application; @Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}
}
7 Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<!-- 2 -->
<package name="login" extends="struts-default" namespace="/">
<action name="login">
<result>/WEB-INF/exe2/login.jsp</result>
</action> <action name="user-login" class="com.exe.login.UserAction" method="login">
<result name="login-success">/WEB-INF/exe2/success.jsp</result>
</action> <action name="user-logout" class="com.exe.login.UserAction" method="logout">
<result name="logout-success">/WEB-INF/exe2/logout.jsp</result>
</action> </package> <!-- 1 -->
<package name="pro" extends="struts-default">
<action name="product_input">
<result>/WEB-INF/pages/input.jsp</result>
</action> <action name="product-save" class="com.exe.pro.Product" method="save">
<result name="show">/WEB-INF/pages/show.jsp</result>
</action>
</package>
</struts>

Struts2实现简单的在线人数统计的更多相关文章
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(40)-精准在线人数统计实现-[过滤器+Cache] 系列目录 上次的探讨没有任何结果,我浏览了大量的文章 ...
- 1.0、Struts2的简单搭建方法
一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作 ...
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
在线人数统计方面的实现,最初我的想法是,管理session,如果session销毁了就减少,如果登陆用户了就新增一个,但是如果是用户非法退出,如:未注销,关闭浏览器等,这个用户的session是管理不 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨 系列目录 基于web的网站在线统计一直处于不是很精准的状态!基本上没有一种方法可 ...
- struts2.0简单教程
Struts2.0简单配置教程: 在Eclipse中配置Struts2 步骤一:首先打开java ee并建立一个动态网站项目,我建立的项目名为TestDemo,如下图: 建立之后可在左侧发现工程,展开 ...
- HttpsessionListener 实现在线人数统计
最近在学servlet jsp,用的林信良先生的 jsp&servlet 这本书,在第五章有道在线人数统计的课后题完成,做一次记录. 实际效果: 一:用户类: package cc.openh ...
- 超简单的qps统计方法(推荐)【转】
统计最近N秒内的QPS值(包括每秒select,insert等值) mysql> select variable_name,sum(per_sec) as qps from (select st ...
- 在线人数统计session管理
下午比较闲(其实今天都很闲),想了一下在线人数统计方面的实现,上网找了下这方面的知识,最初我的想法是,管理session,如果session销毁了就减少,如果登陆用户了就新增一个,但是如果是用户非法退 ...
- 用python实现简单EXCEL数据统计的实例
用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...
随机推荐
- java中重载、覆盖和隐藏三者的区别分析
重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg ...
- 在python中使用图形库matplotlib
matplotlib is a python 2D plotting library which produces publication quality figures in a variety o ...
- 探索C++的秘密之详解extern "C",这就是为什么很多.lib被我们正确调用确总是无法解析的。
(转载,绝对的有用) lib被我们正确调用确总是无法解析.这是C++编译和C编译的区别 时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C&qu ...
- spring mvc拦截器和<mvc:annotation-driven />的详解
MVC的拦截器 经本人在Spring mvc中对方案1和方案2的测试表明,并没有拦截静态资源,所以可以放心使用方案1和方案2,方案3可以放弃,并且可以放心使用<mvc:annotation-dr ...
- JS js与css的动态加载
http://www.cnblogs.com/zhuimengdeyuanyuan/archive/2013/03/06/2946277.html
- 跟着视频做的SSH项目总结
一直没做过SSH(Struts2+Spring+Hibernate)的实际项目,只是三个框架学的还熟练,但整合起来使用就不知道了.所以前段时间在网上找了一套SSH实际项目的视频来学习(确切的说是买的. ...
- row_number()函数
row_number()over( partition by a order by b desc ) rn 根据[字段a]分组,分组内根据[字段b]排序,次函数返回的是每组内部排序后的序列号(分组内唯 ...
- ORM原型概念
ORM[Object-Relation-Mapping]对象关系映射. 这个名词已经出来好几年了.已经不陌生. 以前在项目中针对相对复杂业务逻辑时一般采用领域模型驱动方式进行业务概述,分析和建模. ...
- RHCE 系列(一):如何设置和测试静态网络路由
RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练.支持和咨询服务. 这个 RHCE 是 ...
- 为什么使用 Bootstrap?
为什么使用 Bootstrap? 移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式. 浏览器支持:所有的主流浏览器都支持 Bootstrap. 容易上 ...