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数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...
随机推荐
- POSIX信号
POSIX 表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEE ...
- windows docker测试
最近测试环节要求比较多,笔记本上虚拟机越来越多,试验一下docker,随笔如下. 一.安装docker 主机windows 10 专业版 网上在windows10上安装docker有两种方法 一个是使 ...
- 数据包与IPTABLE关系
#数据包传输 以本地为目标 -------------------------------------------------------------------------------------- ...
- HR函数学习03——维护信息类型1008
REPORT ZLYHR01. DATA:TP1008 TYPE TABLE OF P1008, SP1008 TYPE P1008. SP1008-PLVAR = '. SP1008-OTYPE = ...
- 不错的TOMCAT监控好工具probe
Tomcat版本:6.0.41 Probe版本:2.3.3 一,Tomcat没有默认用户账号,故首先需要添加Tomcat用户账号 修改$CATALINA_HOME/conf/tomcat-users. ...
- C# 文件夹加密
可以加密文件内容,也可以对文件夹本身进行加密,本文对文件夹加密. 一.指定或生成一个密钥 1)指定的密钥 /// <summary> /// 密钥,这个密码可以随便指定 /// </ ...
- js禁用回退键backspace解决办法
本文摘自http://q821424508.iteye.com/blog/1587025 以下为2.0版本,支持IE,firefox,chrome[这三款浏览器经过测试]等浏览器 window.onl ...
- 大公司的Java面试题集
找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...
- boundingRectWithSize
CGSize labsize1=[label1.text boundingRectWithSize:CGSizeMake(SCREEN_WIDTH-80, MAXFLOAT) options:NSSt ...
- 黑马程序员——【Java高新技术】——JavaBean、注解
---------- android培训.java培训.期待与您交流! ---------- 一.JavaBean * 通过内省引入JavaBean:内省对应的英文全程是IntroSpector.在J ...