- 浏览: 109250 次
- 性别:
- 来自: 北京
文章分类
最新评论
web.xml
<listener>
<listener-class>cyoa.page.OnlinePersons</listener-class>
</listener>
import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class OnlinePersons implements HttpSessionListener,
ServletContextListener, ServletContextAttributeListener {
private int count;
private ServletContext context = null;
public OnlinePersons() {
count = 0;
// setContext();
}
// 创建一个session时激发
public void sessionCreated(HttpSessionEvent se) {
count++;
setContext(se);
}
// 当一个session失效时激发
public void sessionDestroyed(HttpSessionEvent se) {
count--;
setContext(se);
}
// 设置context的属性,它将激发attributeReplaced或attributeAdded方法
public void setContext(HttpSessionEvent se) {
se.getSession().getServletContext().setAttribute("onLine",
new Integer(count));
}
// 增加一个新的属性时激发
public void attributeAdded(ServletContextAttributeEvent event) {
log("attributeAdded('" + event.getName() + "', '" + event.getValue()
+ "')");
}
// 删除一个新的属性时激发
public void attributeRemoved(ServletContextAttributeEvent event) {
log("attributeRemoved('" + event.getName() + "', '"
+ event.getValue() + "')");
}
// 属性被替代时激发
public void attributeReplaced(ServletContextAttributeEvent event) {
log("attributeReplaced('" + event.getName() + "', '"
+ event.getValue() + "')");
}
// context删除时激发
public void contextDestroyed(ServletContextEvent event) {
log("contextDestroyed()");
this.context = null;
}
// context初始化时激发
public void contextInitialized(ServletContextEvent event) {
this.context = event.getServletContext();
log("contextInitialized()");
}
private void log(String message) {
System.out.println("ContextListener: " + message);
}
public void attributeAdded(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
public void attributeRemoved(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
public void attributeReplaced(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
}
}
//退出时
function close(){
document.location.href="loginoutAction.do";
var ua = navigator.userAgent; var ie = navigator.appName=="Microsoft Internet Explorer"?true:false;
if(ie){
var IEversion = parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))));
if( IEversion< 5.5){
var str = '';
document.body.insertAdjacentHTML("beforeEnd", str);
document.all.noTipClose.Click();
} else {
top.opener =null; top.close();
}
}else{
top.close();
}
}
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LoginoutAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HttpSession sess=request.getSession(true);
if(sess.getAttribute("username")!=null && !sess.getAttribute("username").equals("")){
sess.removeAttribute("username");
sess.invalidate();
}
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=null;
try{
out= response.getWriter();
out.print("<script language='javascript'> top.location.href='login.jsp';</script>");
} catch(Exception e){e.printStackTrace();}
return null;
}
}
发表评论
-
解决excel文字读取错误 可能某些数字格式已丢失
2018-12-29 09:11 618ServletOutputStream ... -
struts上传下载多个文件
2015-04-30 11:24 512实例: 第一步导入包: commons-fileupload- ... -
jdcob--Could not initialize class com.jacob.com.ComThread
2015-02-27 09:00 19081--dll 文件 放在tomcat/bin 下面 ... -
ntko打印公章
2014-12-02 09:04 567//TANGER_OCX_OBJ.ActiveDocument ... -
hibernate 映射文件生成数据库表脚本
2011-03-28 16:20 865import org.hibernate.cfg.Config ... -
java换肤改变页面肤色
2011-03-02 14:05 994import java.io.IOException;impo ... -
java 过滤未登录的用户
2011-03-02 14:03 1103<filter> <filte ... -
java 过滤乱码
2011-03-02 13:44 947web.xml <filter> <f ... -
jacob资料
2011-02-13 23:48 1874JACOB是一个JAVA到微软的COM接口的桥梁。使用JACO ... -
hibernate 查询乱码
2010-10-06 15:12 746在使用HQL进行查询时,如果查询语句中存在中文字符,则会有乱码 ... -
java 多线程代码
2010-09-30 12:44 1489package com.jacob.activeX; imp ... -
过滤未登录的用户
2010-09-15 10:59 880package com.filter; import jav ... -
jacob操作word 解决换页问题
2010-09-13 08:17 3765package audit.pub.word; imp ... -
jacob操作word增加表格 行列
2010-08-10 09:52 2940import com.jacob.activeX.Activ ... -
jsp导出word 带图片
2010-04-12 17:28 33881.将word另存为html格式,然后将html格式的文件另存 ... -
读取blob格式图片上传到服务器目录
2010-04-12 17:21 1989//得到blob格式图片 String fileUrl = ... -
批量导入图片保存成blob格式
2010-03-31 15:15 1689/** * 创建目录 * @param director ... -
org.apache.tools包 解压缩zip 解决中文乱码 ant 版本冲突
2010-03-30 12:50 3039private void createDirectory(St ... -
java 获取文件大小
2010-03-29 14:32 15808import java.io.*; public class ... -
xml的读取分析 key value
2010-03-23 15:20 1588package com.basedata.xml; impo ...
相关推荐
在JAVA Web开发中,实现在线用户统计是一项关键功能,它能够帮助网站或应用程序的管理员实时了解当前有多少用户正在访问和使用系统。这个“JAVA Web在线用户统计”解决方案显然是强大、好用且简单的,这意味着它可能...
2. **时间窗口机制**:为了统计在线用户,我们需要一个时间窗口来判断用户是否活跃。可以使用滑动窗口或者固定窗口算法,例如基于时间戳的队列,当新的用户活动到来时,将时间戳加入队列,然后定期检查队列中时间...
在IT行业中,尤其是在Web开发领域,判断用户是否在线和实时统计在线人数是常见的需求,这有助于提供更好的用户体验和服务。这两个概念通常与Java Web和JSP技术密切相关,涉及到HTTP会话管理和数据结构的运用。 首先...
这个工具包含了三个关键文件:`java代码统计工具.exe`是可执行程序,用户可以直接运行来执行统计;`CodeCounter.java`可能是该工具的主要源代码文件,包含了统计逻辑;`MyFilter.java`可能是一个过滤器类,用于筛选...
根据提供的文件信息,我们可以分析出该系统通过JSP、Servlet以及Java技术实现了一个简单的在线用户统计功能。下面将从以下几个方面进行详细解析: ### 一、项目架构与技术栈 本项目主要使用了JSP(Java Server ...
在Java Web开发中,统计在线人数是一项常见的需求,它能够帮助我们了解系统当前的活跃用户量。本项目通过实现`HttpSessionListener`接口,每隔一分钟动态更新在线人数,提供了高效且可靠的解决方案。以下是对这个...
Java数据生成统计图表程序是一种利用...综上所述,"Java数据生成统计图表程序"是一个综合性的项目,涵盖了数据处理、图形绘制和用户交互等多个方面,对于学习和实践Java编程,特别是数据可视化,是非常有价值的实例。
本文将深入探讨如何使用Java Web技术来监听并统计在线人数。 1. **HTTP与Session** HTTP协议本身是无状态的,无法直接追踪用户的会话。为了在多个请求之间保持用户状态,Web服务器引入了Session机制。每当用户打开...
【标题】"JAVA编写SVN统计代码数量系统"是一个基于Spring Boot框架的项目,用于统计在Subversion(SVN)版本控制系统中的代码提交情况。它能够详细地分析每个团队成员在SVN仓库中的代码贡献量。 【核心知识点】: ...
### JSP实现在线人数及在线用户统计 #### 知识点概述 在现代Web开发中,统计在线人数和在线用户是十分重要的功能之一,尤其是在构建社区、论坛等交互性强的网站时。通过JSP(JavaServer Pages)可以方便地实现这一...
14、支持用户自定义文件统计类型及统计方法。 15、支持htm,excel,csv,txt等多种存盘文件类型。 16、支持统计结果的直接打印输出。 17、支持命令行方式的文件及目录统计方式。 18、支持资源管理器右键关联的文件及...
总结在这个实战博客中,我们了解了如何使用 Java 和 Spring Boot 构建一个简单的在线投票系统。我们使用了 Thymeleaf 提供用户界面,Spring Data JPA 简化数据访问,并借助 H2 内存数据库存储投票数据。通过这个项目...
这意味着Java代码统计工具是一个基于Java编写的程序,用户需要先安装JRE才能在计算机上运行这个工具。 总的来说,Java代码统计工具通过提供丰富的统计信息,可以帮助开发人员和团队更好地管理代码库,提升代码质量...
在Java编程中,实现月、日、年、周和访问量统计是一项常见的需求,尤其是在构建数据分析或Web应用中。这通常涉及到数据收集、处理和可视化。以下是一些关键知识点: 1. **日期和时间处理**:Java提供了多种库来处理...
在网站运营过程中,统计在线人数和访问量是至关重要的数据指标,它们可以帮助我们了解网站的活跃度、用户行为以及优化方向。本主题将详细介绍如何使用Java编程语言来实现这一功能,特别是关注当前年、月、日的访问量...
Java问卷调查统计软件是一款利用Java编程语言开发的应用程序,主要用于处理和分析社会实践中的问卷调查数据。这个程序的核心功能包括数据录入、数据清洗、数据分析以及结果可视化。下面将详细阐述其中涉及的关键知识...
在给定的标题“用java实现word统计报表和图形统计的导出”中,我们可以理解到这个项目或教程旨在教我们如何使用Java来创建包含统计报表和图形的Microsoft Word文档。这通常涉及到两个关键领域:文本处理和数据可视化...
图片可能展示了如何组织代码结构,或者提供了一个用户界面的预览,如果这个统计器还包括图形用户界面的话。 总的来说,创建一个Java文字样式统计器需要深入理解字符串操作、正则表达式(可能用于更复杂的文本分割和...
这篇文章将详细介绍如何使用Java来统计网站的访问量,包括PV和UV的计算方法。 PV(页面浏览量)是指用户在网站上每打开一次页面就被计数一次,它反映了网站的总浏览次数。例如,如果一个用户在同一页面上刷新了三次...
Java词频统计程序MVC是一种基于Java编程语言实现的、采用Model-View-Controller(MVC)设计模式的软件架构来统计文本中单词出现频率的应用。MVC模式是软件工程中一种常用的设计模式,用于将应用程序的业务逻辑、用户...