用Strust2框架的知识简单实现一个统计在线人数的问题。

  1 搭建开发环境;(配置文件,jar包等问题)

  2 index.jsp    

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10.  
  11. <!-- <a href="product_input.action">welcome!</a>
  12. <br><br> -->
  13. <a href="login.action">注册页面</a>
  14. <br><br>
  15. </body>
  16. </html>

  3 login.jsp  

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <form action="user-login.action" method="post">
  11. username:<input type="text" name="username"/>
  12. <br><br>
  13. <input type="Submit" value="Submit"/>
  14. </form>
  15. </body>
  16. </html>

4 success.jsp 

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h2>登陆成功!</h2>
  11. <br><br>
  12. Welcome:${sessionScope.username }
  13. <br><br>
  14.  
  15. 当前在线人数:${applicationScope.count }
  16. <br><br>
  17.  
  18. <a href="user-logout.action">退出登录</a>
  19. <br><br>
  20.  
  21. </body>
  22. </html>

  5 logout.jsp  

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h2>退出成功!</h2>
  11. --当前人数:${count }
  12. <br><br>
  13. </body>
  14. </html>

  6 UserAction.java

  1. package com.exe.login;
  2.  
  3. import java.util.Map;
  4.  
  5. import org.apache.struts2.dispatcher.SessionMap;
  6. import org.apache.struts2.interceptor.ApplicationAware;
  7. import org.apache.struts2.interceptor.SessionAware;
  8.  
  9. public class UserAction implements SessionAware,ApplicationAware{
  10.  
  11. private String username;
  12. public void setName(String username) {
  13. this.username = username;
  14. }
  15.  
  16. //退出
  17. public String logout(){
  18. Integer count = (Integer)application.get("count");
  19. if(count==null)
  20. count=0;
  21.  
  22. if(count!= null && count > 0){
  23. count--;
  24. application.put("count", count);
  25. }
  26.  
  27. //使session失效
  28. ((SessionMap)session).invalidate();
  29. System.out.println("退出一个人, 当前在线人数:"+count);
  30. return "logout-success";
  31. }
  32.  
  33. public String login(){
  34. int index=0;
  35. //存储用户信息,放入Session域中
  36. //1 获取session:实现SessionAware接口;
  37. //2 获取登录信息,通过setter方法;
  38. //3 将用户信息存储在session域中;
  39. session.put("username", username);
  40.  
  41. //1 获取当前在线人数
  42. Integer count = (Integer)application.get("count");
  43. if(count==null)
  44. count=0;
  45. //2 人数+1
  46. count++;
  47. //3 存储登陆人数
  48. application.put("count", count);
  49. System.out.println("UserAction 当前在线人数:"+count);
  50.  
  51. return "login-success";
  52. }
  53.  
  54. private Map<String,Object> session;
  55.  
  56. @Override
  57. public void setSession(Map<String, Object> session) {
  58. this.session=session;
  59. }
  60.  
  61. private Map<String,Object> application;
  62.  
  63. @Override
  64. public void setApplication(Map<String, Object> application) {
  65. this.application = application;
  66. }
  67. }

  7 Struts.xml  

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5.  
  6. <struts>
  7. <!-- 2 -->
  8. <package name="login" extends="struts-default" namespace="/">
  9. <action name="login">
  10. <result>/WEB-INF/exe2/login.jsp</result>
  11. </action>
  12.  
  13. <action name="user-login" class="com.exe.login.UserAction" method="login">
  14. <result name="login-success">/WEB-INF/exe2/success.jsp</result>
  15. </action>
  16.  
  17. <action name="user-logout" class="com.exe.login.UserAction" method="logout">
  18. <result name="logout-success">/WEB-INF/exe2/logout.jsp</result>
  19. </action>
  20.  
  21. </package>
  22.  
  23. <!-- 1 -->
  24. <package name="pro" extends="struts-default">
  25. <action name="product_input">
  26. <result>/WEB-INF/pages/input.jsp</result>
  27. </action>
  28.  
  29. <action name="product-save" class="com.exe.pro.Product" method="save">
  30. <result name="show">/WEB-INF/pages/show.jsp</result>
  31. </action>
  32. </package>
  33. </struts>

  

  

Struts2实现简单的在线人数统计的更多相关文章

  1. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(40)-精准在线人数统计实现-[过滤器+Cache] 系列目录 上次的探讨没有任何结果,我浏览了大量的文章 ...

  2. 1.0、Struts2的简单搭建方法

    一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作 ...

  3. 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计

    在线人数统计方面的实现,最初我的想法是,管理session,如果session销毁了就减少,如果登陆用户了就新增一个,但是如果是用户非法退出,如:未注销,关闭浏览器等,这个用户的session是管理不 ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(39)-在线人数统计探讨 系列目录 基于web的网站在线统计一直处于不是很精准的状态!基本上没有一种方法可 ...

  5. struts2.0简单教程

    Struts2.0简单配置教程: 在Eclipse中配置Struts2 步骤一:首先打开java ee并建立一个动态网站项目,我建立的项目名为TestDemo,如下图: 建立之后可在左侧发现工程,展开 ...

  6. HttpsessionListener 实现在线人数统计

    最近在学servlet jsp,用的林信良先生的 jsp&servlet 这本书,在第五章有道在线人数统计的课后题完成,做一次记录. 实际效果: 一:用户类: package cc.openh ...

  7. 超简单的qps统计方法(推荐)【转】

    统计最近N秒内的QPS值(包括每秒select,insert等值) mysql> select variable_name,sum(per_sec) as qps from (select st ...

  8. 在线人数统计session管理

    下午比较闲(其实今天都很闲),想了一下在线人数统计方面的实现,上网找了下这方面的知识,最初我的想法是,管理session,如果session销毁了就减少,如果登陆用户了就新增一个,但是如果是用户非法退 ...

  9. 用python实现简单EXCEL数据统计的实例

    用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...

随机推荐

  1. OPencv1.0配置vs2010(介于OPencv的经典之作。都是OPencv1.0为基础的。)

    首先下载OPencv1.0 我在之前的博客中写了下载的资源http://www.cnblogs.com/xiaochige/p/5990858.html 把OPencv1.0中bin文件夹下的所有内容 ...

  2. JS js与css的动态加载

    http://www.cnblogs.com/zhuimengdeyuanyuan/archive/2013/03/06/2946277.html

  3. 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 ...

  4. C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台

    微信公众平台接入:其实很简单,把两个参数(地址和token)填入微信公众平台后台,暂时选择明文模式 ,其中token自己定义.微信服务器会根据后台填写的地址访问,并且带上对于的参数 如 url+&am ...

  5. BestCoder Round #41

    T1:ZCC loves straight flush(hdu 5228) 题目大意: 给出5张牌,问至少替换多少张牌可以构成同花顺. 题解: 1.直接枚举所有同花顺(枚举花色A-D和最小的数字1-1 ...

  6. node

    docker run -d --name data -v c:/jayruanwork/app:/usr/share/app busybox || windows c:\jayruanwork\app ...

  7. IT公司100题-25-求字符串中的最长数字串

    问题描述: 实现一个函数,求出字符串中的连续最长数字串.例如输入”12345cbf3456″,输出”12345″. 函数原型为: void conti_num_max( const char * sr ...

  8. 黑马程序员——OC语言 三大特性之多态

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...

  9. OC中快速创建NSNumber NSDictionary NSArray的方法

    NSNumber: @()     @小括号 或者        NSNumber * num = @3;    NSValue * value = @4; NSDictionary :@{} @大括 ...

  10. Python的平凡之路(6)

    一.面向对象编程介绍 1 编程范式:          编程范式(Programming Paradigm)是某种编程语言典型的编程风格或者说是编程方式.随着编程方法学和软件工程研究的深入,特别是OO ...