`

Struts2之统计用户在线人数案例

 
阅读更多

 

统计用户在线人数案例

 

1. 添加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>登陆</title>
</head>
<body>
    
    <h4>可用账户:rabbitx/123456</h4>
    <hr/>
    <form action="login.do" method="POST"> 
        <fieldset>
            <legend>登陆</legend>
                                    账户:<input type="text" name="username">
                                    密码:<input type="password" name="password">
                <input type="submit" value="登陆">
        </fieldset>
    </form>
    
</body>
</html>

 

<%@ 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>在线用户数统计</title>
</head>
<body>
    
    <h2>当前用户:${sessionScope.username}</h2>
    <h2>在线用户数:${applicationScope.count}</h2>
    <a href="logout.do">注销</a>
</body>
</html>

 

2. 添加Action

 

package org.rabbitx.web.struts2.user.action;

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 Map<String, Object> session;
	
	private Map<String, Object> application;
	
	private String username;
	
	private String password;
	
	@Override
	public void setSession(Map<String, Object> session) {
        this.session = session;		
	}

	@Override
	public void setApplication(Map<String, Object> application) {
		 this.application = application;				
	}
	
	public String login()
	{
		if("rabbitx".equals(username) && "123456".equals(password))
		{
			session.put("username", username);
			Integer count = (Integer)application.get("count");
            if(null == count)
            {
            	count = 0;
            }
            application.put("count", ++count);
			return "success";
		}else
		{
			
			return "fail";
		}
	}
	
	
	@SuppressWarnings("rawtypes")
	public String logout()
	{
		Integer count = (Integer)application.get("count");
		if(count != null && count > 0)
		{
			application.put("count", --count);
		}
		
		((SessionMap)session).invalidate();
		System.out.println("session invalidate ...");
		
		return "success";
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

 

3. 配置Action

 

	<package name="online-user-statistic" extends="struts-default">
	
	    <action name="login" class="org.rabbitx.web.struts2.user.action.UserAction" method="login">
            <result name="success">/statistics/homepage.jsp</result>
            <result name="fail">/statistics/login.jsp</result>
        </action>
        
        <action name="logout" class="org.rabbitx.web.struts2.user.action.UserAction" method="logout">
            <result name="success">/statistics/login.jsp</result>
            <result name="fail">/statistics/login.jsp</result>
        </action>
        
	</package>

 

 

分享到:
评论

相关推荐

    sturts在线统计人数

    在本案例中,“Struts在线统计人数”是指使用 Struts 框架实现的一种功能,它可以实时计算并展示网站或应用的在线用户数量。 要实现这样一个功能,首先我们需要理解 Struts 的工作原理。Struts 将请求分发到控制器...

    学生选课管理系统(java开发,框架是spring+struts1.2+hibernate)

    4. 数据统计模块:系统自动统计选课数据,如各课程选课人数、学生选课比例等,为决策提供依据。 5. 安全模块:通过用户权限控制、数据加密等手段,确保系统的安全性,防止数据泄露或被非法操作。 压缩包中的...

    学生选课系统 基于Spring+Struts+JDBC

    4. 查询统计:提供查询功能,如查看个人选课情况、课程选修人数等。这需要设计合理的SQL查询语句,结合JDBC执行。 5. 系统维护:包括数据备份、恢复、异常处理等,确保系统的稳定运行。 在实际开发过程中,我们需要...

    JAVA WEB典型模块与项目实战大全

    7.6 统计在线人数功能  7.7 小结  第8章 网络购物车(jsp+servlet+javabean)  8.1 网络购物车原理  8.2 实现网络购物车功能  8.3 小结  第9章 搜索引擎(lucene+web spider)  9.1 关于搜索引擎的基本...

    ssh医院管理系统

    8. 报表统计:生成各类统计报表,如就诊人数、药品消耗量等,便于管理层决策。 通过学习和实践SSH医院管理系统,开发者不仅可以深入理解Spring、Hibernate和Struts的用法,还能掌握Java Web开发的常用技术和最佳...

    javaee人力资源项目源码

    4. **报表与统计**:生成各类报表,如员工薪资统计、部门人数统计等,为管理层决策提供数据支持。可能需要利用到JasperReport或者iText等报表工具。 5. **系统设置**:包含系统参数配置、语言切换等功能,提供系统...

    SSH学生选课系统

    6. **查询与统计**:管理员可以查看选课情况,统计各课程的选课人数,以便于调整教学资源。 在实现过程中,开发者还需要关注性能优化,如合理配置缓存以减少数据库访问,以及错误处理和日志记录,确保系统稳定运行...

    JSP机房上机收费管理系统(源代码+论文+外文翻译).zip

    5. 数据统计与报表:提供各类统计报表,如上机人数、收入统计等,帮助管理层决策。 四、开发工具与框架 开发过程中可能用到的工具有Eclipse、IntelliJ IDEA等Java集成开发环境,数据库可能选择MySQL,前端页面可能...

    基于jsp个人博客系统

    本系统采用Java Server Pages(JSP)技术进行开发,结合了Servlet、JavaBean和MVC(Model-View-Controller)设计模式,实现了相册、留言版、日志等多种功能,同时具备浏览人数统计能力,为用户提供了一站式的个性化...

    学生选课系统 ssh

    5. **报表统计**:管理员可以生成选课统计报表,分析各课程的选课人数,以便调整课程设置或资源分配。 6. **权限控制**:通过SSH框架的控制层,系统实现了不同角色的权限控制,例如,学生只能查看和修改自己的信息...

    有关软件毕业答辩PPT学习教案.pptx

    2. 关键技术研究:深入研究MVC三层设计模式,包括JSP、JavaBean和Servlet的结合,Struts中的MVC设计,Servlet监听器技术用于在线人数统计,过滤器技术用于用户授权验证,以及会话状态管理和JavaScript客户端脚本技术...

    8-张壮壮-201730910524-标签1

    3. 框架选择:可选Spring MVC或Struts2作为MVC框架,提供更好的结构化和可维护性。 四、系统功能模块 1. 用户管理:包括管理员、学生、维修人员等多种角色,不同角色有不同的操作权限。 2. 宿舍信息管理:录入、...

    ssh公交管理系统

    - 统计分析:对运营数据进行统计分析,如乘车人数、收入、延误率等。 通过这些模块,SSH公交管理系统可以有效地支持公交公司的日常运营和决策制定,提高效率,减少人为错误,优化服务。由于系统包含了数据库,下载...

    基于ssh框架简单的学生信息管理系统

    - 数据统计分析:可能包含对班级人数、男女比例等数据的统计和展示。 6. **系统部署与运行** 完成开发后,学生信息管理系统需要部署在支持Servlet和JSP的Web服务器上,例如Tomcat或Jetty。配置好环境变量,包括...

    学生学籍管理系统代码与项目

    6. **课程信息统计**:对课程的选课人数、平均分等进行统计分析,展示课程的热门程度和难易程度。 7. **分组查询**:例如按班级、专业等条件进行学生信息的筛选和展示,这需要设计合理的数据库索引和查询优化。 8....

    filter__serverlet__listener与interceptor的相同点与区别.doc

    - Listener在对象生命周期中的关键事件(如session创建、销毁,或者特定属性的设置和移除)上触发,适合进行辅助性的管理任务,如初始化资源、统计在线人数等。 - 示例:在Spring整合Struts时,Listener可以用来...

Global site tag (gtag.js) - Google Analytics