防止多人使用统一用户上网和用户非正常退出注销问题-JSP教程,资料/其它

本文主要是介绍防止多人使用统一用户上网和用户非正常退出注销问题-JSP教程,资料/其它,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,不要完全靠session来控制,session会有一个失效时间,这个时间不宜设的太短,否则正常工作会受影响。用监听事件的方法也是不可取的,事实上这个事件也会等到session过期的时候才会触发。
2,可以采用隐藏桢的方式来检测用户的在线,这个时间可以设的比较短。比如5分钟。就像dev-club.com一样。在这个桢里得到用户名,当时的ip,以及访问时间。记录在application中。
3,当另有用户来访问的时候,就判断在application的数据,如果已经有该用户的访问记录,就按ip和时间来判断,是否可以继续。比如说ip不同,但时间隔了很久了,就允许访问。
4,你还可以再写一个后台进程来对application中的过期数据进行清理。
5,对于使用代理或网关访问的用户判断可以这样,session对象有一个方法叫getid(),可以得到一个唯一的id。即使使用同一ip来访问,这个id也是不同的,可以加以区分。

嗯。以上都是理论。我没有做过。但应该是可行的。



原问题
xinlcao 于 2002-12-21 11:06:09 加贴在 java程序设计 ←返回版面         
请高手帮忙,遇到两个问题:
1、如何限制同一账号在同一时间只能有一名用户使用,即防止多人使用统一用户上网;
2、如何在用户直接关闭浏览器而不是按退出按钮时注销用户。
我不知道这两个问题能否在b/s结构中很好的解决,请高手指点。
下面是我的想法和疑惑:
1、可以通过cookie或session取得用户登陆的记录,但由于http协议的连接不连续,如果两个用户用同一账号上网,只要不是同时向服务器请求,就无法知道到底是不是合用同一账号,曾想试着同时记录用户上网时的用户名和ip地址,只要在一定时间内登陆的同一用户名对应的ip地址不同,即可认为是合用同一账号,但又引出两个新的问题:(1)如果两个用户在网吧上网或有代理服务器的内部网上网,则获得的ip地址也可能相同;(2)如果一个用户拨号上网,突然计算机死机或突然网络中断,当他再次上网时,由于拨号每次ip都可能不同,系统将把它当作另一个用户处理。
2、想过制作一个记录用户登陆信息的类class userlogin,然后启动一个线程不停的定时查看登陆用户的信息,根据一定的规则检查用户的合法性,但也无法解决上面的问题。
3、对于用户非正常退出的注销,曾试着用监听session的值来判断:
public class userlogin implements httpsessionbindinglistener:声明类时引入监听器
public void valueunbound(httpsessionbindingevent e):获得session时的事件
public void valuebound(httpsessionbindingevent e):获得用户登陆时向session写入数据时的事件
一个用户登陆时好判断,只要从e中得到当时的session,然后从中获得向session中写入的变量和值,但是当用户由于session失效退出时,又无法判断,因为这时无法知道是哪个用户退出了,从e中获得的session已经是实效的了。
先谢谢大家的帮忙!!!帮忙帮忙

参见:http://www.dev-club.com/club/bbs/showannounce.asp?id=1839973  

这篇关于防止多人使用统一用户上网和用户非正常退出注销问题-JSP教程,资料/其它的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945059

相关文章

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地