社区
Web 开发
帖子详情
用户登陆问题:同一个用户帐号,在同一时间内只能一个人使用。在线等了。
xiaohua223
2005-02-24 05:44:51
水平有限呀,高手给个详解。
...全文
605
22
打赏
收藏
用户登陆问题:同一个用户帐号,在同一时间内只能一个人使用。在线等了。
水平有限呀,高手给个详解。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lurrix
2005-02-25
打赏
举报
回复
这里的讨论很热烈,不过首先得澄清,这个问题不叫单点登陆,呵呵,单点登陆指的是sso,感兴趣的朋友可以看看josso。
tly同学的回复只能说找到问题的一种解决办法,但实现的代码是有问题的:
1。多线程安全;
2。sessionCreated访法没有做任何实现的工作。
starsoulxp
2005-02-25
打赏
举报
回复
单点登陆,也可以根据网卡物理地址
mask85
2005-02-25
打赏
举报
回复
我想把Bean做成单例模式不就可以了?
dadunqingwa
2005-02-25
打赏
举报
回复
学习中,参照转的哪个帖子配置下吧……
guestroad
2005-02-25
打赏
举报
回复
up
congbailing_914
2005-02-25
打赏
举报
回复
楼上的haohaohaohao1 哈哈,在这又见到你了!
我也血洗一下,顶!!!!
taoxuwen
2005-02-25
打赏
举报
回复
学习 up
bp69
2005-02-25
打赏
举报
回复
用application简单
luoyefeng
2005-02-25
打赏
举报
回复
如果要管理费正常退出,可以用一个全局bean进行轮询,在设定的时间内如果没有获得用户的请求,就自动退出
shloshlo
2005-02-25
打赏
举报
回复
gz
tlg
2005-02-24
打赏
举报
回复
说明:这是转帖
tlg
2005-02-24
打赏
举报
回复
发现对于登录问题的解决都说用session监听,但是没有人写出示例代码,今天写了一个,希望对大家有所帮助.
解决同名用户登录的问题,类似QQ,即同名用户第二次登录,第一次登录的用户就掉线.
SessionListener.java监听session的类,部署于/App/WEB-INF/classes/com/test下(其中App为你的应用程序目录)
package com.test;
import javax.servlet.http.*;
import java.util.*;
public class SessionListener implements HttpSessionListener{
private static HashMap hUserName = new HashMap();//保存sessionID和username的映射
/**以下是实现HttpSessionListener中的方法**/
public void sessionCreated(HttpSessionEvent se){
}
public void sessionDestroyed(HttpSessionEvent se){
hUserName.remove( se.getSession().getId() );
}
/*
* isAlreadyEnter-用于判断用户是否已经登录以及相应的处理方法
* @param sUserName String-登录的用户名称
* @return boolean-该用户是否已经登录过的标志
*/
public static boolean isAlreadyEnter(HttpSession session,String sUserName){
boolean flag = false;
if(hUserName.containsValue(sUserName)){//如果该用户已经登录过,则使上次登录的用户掉线(依据使用户名是否在hUserName中)
flag = true;
//遍历原来的hUserName,删除原用户名对应的sessionID(即删除原来的sessionID和username)
Iterator iter = hUserName.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry)iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
if( ( (String)val ).equals(sUserName) ){
hUserName.remove(key);
}
}
hUserName.put( session.getId(),sUserName );//添加现在的sessionID和username
System.out.println("hUserName = " + hUserName);
}
else{//如果该用户没登录过,直接添加现在的sessionID和username
flag = false;
hUserName.put( session.getId(),sUserName );
System.out.println("hUserName = " + hUserName);
}
return flag;
}
/*
* isOnline-用于判断用户是否在线
* @param session HttpSession-登录的用户名称
* @return boolean-该用户是否在线的标志
*/
public static boolean isOnline(HttpSession session){
boolean flag = true;
if( hUserName.containsKey( session.getId() ) ){
flag = true;
}
else{
flag = false;
}
return flag;
}
}
web.xml部署于/App/WEB-INF下
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">
<web-app>
<listener>
<listener-class>
com.inspirer.dbmp.SessionListener
</listener-class>
</listener>
</web-app>
应用部分
1.在你的登录验证时,调用SessionListener.isAlreadyEnter(session,"admin")
既可以判断该用户名的用户是否登录过,又可以使上次登录的用户掉线
2.其他页面调用SessionListener.isOnline(session),可以判断该用户是否在线.
写的应该比较详细了,希望对大家有所帮助.希望大家能提提修改的意见,认为可以的朋友帮忙UP一个!!
最后祝大家春节快乐,合家团圆
xiaohua223
2005-02-24
打赏
举报
回复
登录了的做个标志就可以了,退出了怎么去除标志。
kaymo
2005-02-24
打赏
举报
回复
登录了的做个标志就可以了
或写个共通方法
knight_yl
2005-02-24
打赏
举报
回复
jFresH_MaN的思想不错,具体的还要自己做.
开始不要这么多了
Building
2005-02-24
打赏
举报
回复
jFresH_MaN(The answer is ......),依照你的方法,如果用户非正常退出呢?比如直接关闭浏览器
wjr1982et
2005-02-24
打赏
举报
回复
楼上的高手我要修改的是 session.setAttribute("isLog",new String("0"));这里吗?
修改成:application.setAttribute("id","login");吗?
--------------------------------------------------------------------------------
session也是可以的,成功登陆,isLog为1。当其他用户也登陆这个ID时,就可以判断isLog
为1时,就不允许他登陆
xiaohua223
2005-02-24
打赏
举报
回复
我是笨鸟,能不能讲慢点。
wubai250
2005-02-24
打赏
举报
回复
jFresH_MaN(The answer is ......)的想法不错,还简单
xiaohua223
2005-02-24
打赏
举报
回复
我是初学:这个登陆的代码:
loginto.jsp:
<%
//获得请求的参数。
String id=request.getParameter("id");
String psw=request.getParameter("password");
//连接数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:mysql://127.0.0.1/gold?useUnicode=true&characterEncoding=GB2312","root","123456");
Statement statement=con.createStatement();
ResultSet result=statement.executeQuery("select *from id where userId='"+id+"' and password='"+psw+"'");
session.setAttribute("isLog",new String("0"));
if(result.next())
{
session.setAttribute("isLog",new String("1"));
response.sendRedirect("denglu.jsp");
result.close();
statement.close();
con.close();
}
else
{
//session.setAttribute("isLog",new String("0"));
response.sendRedirect("error.html");//账号或密码错误,转入错误页面
result.close();
statement.close();
con.close();
}
%>
楼上的高手我要修改的是 session.setAttribute("isLog",new String("0"));这里吗?
修改成:application.setAttribute("id","login");吗?
加载更多回复(2)
螺旋千斤顶作业任务书(此份不含图纸).rar
螺旋千斤顶作业任务书(此份不含图纸).rar
KSHZ.rar
CAD缺少相关字体时,图纸中的文字会出现缺失或乱码。下载所需字体并复制到 AutoCAD 的 Fonts 文件夹后,即可正常显示。
等保主机安全基线合规配置指导windows系统.pdf
代码下载地址: https://pan.quark.cn/s/3f3d88060e9a 一、身份验证措施组1.1 密码措施1.2 账户措施1.3 自动登录验证二、访问权限控制组2.1 账户验证2.2 资源共享验证三、安全审计措施组验证3.1 安全审计措施四、遗留信息保护措施组验证4.1 关机验证4.2 登录验证五、入侵防御验证5.1 Windows系统防火墙5.2 自动系统更新5.3 非必要服务管理5.4 防止暴力密码破解5.5 永恒之蓝漏洞验证六、恶意软件防护6.1 防范恶意软件
阶梯碳下考虑 P2G-CCS 与供需灵活响应的 IES 优化调度(Matlab代码实现)
内容概要:本文围绕“阶梯碳下考虑P2G-CCS与供需灵活响应的IES优化调度”展开,基于Matlab平台构建综合能源系统(IES)在阶梯式碳交易机制下的优化调度模型。研究深度融合电制气(P2G)与碳捕集、利用与封存(CCS)技术,结合需求侧灵活响应机制,旨在提升系统的低碳运行能力与经济性。通过建立多能流耦合的优化模型,协调电力、天然气、热力等多种能源形式的协同调度,有效降低系统碳排放强度,并借助YALIMIP工具包调用求解器进行高效求解。文档提供了完整的代码实现、模型构建流程与结果分析方法,涵盖从
问题
建模到仿真实现的全过程,具备较强的可复现性与科研参考价值。; 适合人群:具备电力系统、能源系统或优化建模相关背景的研究生、高校教师及工程技术人员,尤其适合从事综合能源系统、碳减排策略、P2G与CCS技术集成研究的专业人员,需熟练掌握Matlab编程与基本的数学规划知识。;
使用
场景及目标:①用于研究阶梯式碳交易政策下综合能源系统的低碳经济调度策略;②支撑P2G-CCS技术与需求响应机制在IES中的仿真集成与性能评估;③作为撰写高水平学术论文(如EI/SCI收录)的技术基础与复现资源,推动碳中和背景下能源系统优化方向的创新研究。; 阅读建议:建议结合百度网盘提供的完整代码与资料包,按照模块逐步调试程序,重点理解目标函数的设计逻辑、碳交易成本的建模方式、约束条件的数学表达及求解器的配置方法,同时关注多能耦合设备的建模细节,配合公众号“荔枝科研社”获取持续的技术支持与案例拓展。
故障识别基于CNN-SVM卷积神经网络结合支持向量机的数据分类预测研究(Matlab代码实现)
内容概要:本文系统研究了基于卷积神经网络(CNN)与支持向量机(SVM)融合的CNN-SVM混合模型在数据分类预测中的应用,尤其聚焦于工业故障识别领域。通过Matlab平台实现,该方法首先利用CNN强大的多层次特征提取能力对原始输入数据进行深度特征学习,自动捕获关键局部模式与空间结构信息,随后将提取的高层特征作为输入传递至SVM分类器,借助SVM在高维空间中小样本条件下卓越的分类性能与泛化能力完成最终判别任务。文中详尽阐述了模型的整体架构设计、网络参数配置、训练优化流程及特征迁移机制,充分结合了深度学习在特征表达上的优势与传统机器学习在分类决策上的稳健性。实验部分通过实际故障数据集验证了该混合模型相较于单一CNN或SVM模型在分类准确率、鲁棒性和抗过拟合能力方面的显著提升,证明了其在复杂故障诊断任务中的有效性与先进性; 适合人群:具备一定机器学习与深度学习理论基础,熟悉Matlab编程环境,从事故障诊断、模式识别、智能制造、电力系统监控或工业数据分析等相关领域的研究生、科研人员及工程技术开发者;
使用
场景及目标:① 应用于旋转机械、电力设备、航空航天等领域的多类别故障识别与状态监测;② 掌握深度特征提取与传统分类器融合的技术路径,提升小样本、高噪声环境下数据分类的精度与可靠性;③ 为撰写高水平学术论文、开展科研项目或工程实践提供可复现的算法框架与完整代码支持; 阅读建议:读者应深入理解CNN与SVM的协同工作机制,重点分析特征提取层与分类层之间的接口设计,建议动手运行并调试所提供的Matlab代码,尝试在不同数据集上进行迁移实验与参数调优,以全面掌握该混合模型的应用技巧与优化策略。
Web 开发
81,111
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章