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数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...
随机推荐
- OPencv1.0配置vs2010(介于OPencv的经典之作。都是OPencv1.0为基础的。)
首先下载OPencv1.0 我在之前的博客中写了下载的资源http://www.cnblogs.com/xiaochige/p/5990858.html 把OPencv1.0中bin文件夹下的所有内容 ...
- JS js与css的动态加载
http://www.cnblogs.com/zhuimengdeyuanyuan/archive/2013/03/06/2946277.html
- get a new level 25 battle pet in about an hour
If you have 2 level 25 pets and any level 1 pet, obviously start with him in your lineup. Defeat all ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台
微信公众平台接入:其实很简单,把两个参数(地址和token)填入微信公众平台后台,暂时选择明文模式 ,其中token自己定义.微信服务器会根据后台填写的地址访问,并且带上对于的参数 如 url+&am ...
- BestCoder Round #41
T1:ZCC loves straight flush(hdu 5228) 题目大意: 给出5张牌,问至少替换多少张牌可以构成同花顺. 题解: 1.直接枚举所有同花顺(枚举花色A-D和最小的数字1-1 ...
- node
docker run -d --name data -v c:/jayruanwork/app:/usr/share/app busybox || windows c:\jayruanwork\app ...
- IT公司100题-25-求字符串中的最长数字串
问题描述: 实现一个函数,求出字符串中的连续最长数字串.例如输入”12345cbf3456″,输出”12345″. 函数原型为: void conti_num_max( const char * sr ...
- 黑马程序员——OC语言 三大特性之多态
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...
- OC中快速创建NSNumber NSDictionary NSArray的方法
NSNumber: @() @小括号 或者 NSNumber * num = @3; NSValue * value = @4; NSDictionary :@{} @大括 ...
- Python的平凡之路(6)
一.面向对象编程介绍 1 编程范式: 编程范式(Programming Paradigm)是某种编程语言典型的编程风格或者说是编程方式.随着编程方法学和软件工程研究的深入,特别是OO ...