永发信息网

springmvc hibernate怎么实现同一时间只能一个账号登录

答案:2  悬赏:10  手机版
解决时间 2021-03-05 09:46
springmvc hibernate怎么实现同一时间只能一个账号登录
最佳答案
demo:第一个地方登陆: 1.得到请求的SessionId 和 登陆的 用户名 2.把SessionId 存到application里,用户名存到当前session里        ActionContext ac = ActionContext.getContext(); MapString, Object applicationMap=ac.getApplication(); MapString, Object sesisonMap = ac.getSession();       //请求的sessionId String currentSeesionId= getRequest().getSession().getId(); applicationMap.put(loanUserE.getUname(), currentSeesionId); sesisonMap.put(CommonVar.SSO_LOGIN_NAME_KEY,loanUserE.getUname());第二个地方登陆: 1.获取浏览器的 SessionId 和取得 登陆的用户名 2.在当前的session 里取得 用户名对应的关键字 ,用关键字在application里获取SessionId , 作比较,不相等就跳到登陆。  拦截器: ActionContext actionContext = arg0.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) actionContext.get(StrutsStatics.HTTP_REQUEST); HttpServletResponse response = (HttpServletResponse) actionContext.get(StrutsStatics.HTTP_RESPONSE); MapString, Object sessionMap = actionContext.getSession(); MapString, Object appcationMap = actionContext.getApplication(); String loginName = null; // 上下文对象中的sessionId String sessionId = null; if (!sessionMap.isEmpty()) { loginName = (String) sessionMap.get(CommonVar.SSO_LOGIN_NAME_KEY); } if (null != loginName) { sessionId = (String) appcationMap.get(loginName); } // 当前会话的sessionId String currentSessionId = request.getSession().getId(); if (!currentSessionId.equals(sessionId)) { return "loanUserLogin"; }
全部回答
呵呵,这个是肯定的啊 还有spring代替mvc这说法你自己想出来的吧? 呵呵,这个spring不是这样用的 如何使用啊?怎么注入。。注入到哪啊? 这个就要你重载下hibernatedaosupport,这样分页就更方便了,还可以用hibernate的方法 看这个 public class myhibernatedaosupport extends hibernatedaosupport{ @resource(name="sessionfactory") public void setsupersessionfactory(sessionfactory sessionfactory){ super.setsessionfactory(sessionfactory); } public list findbypage(final string hql, final int offset, final int pagesize) { list list = gethibernatetemplate().executefind(new hibernatecallback() { public object doinhibernate(session session) throws hibernateexception, sqlexception { list result = session.createquery(hql) .setfirstresult(offset) .setmaxresults(pagesize) .list(); return result; } }); return list; } } 这个是一个办法,我都这样用,用的是spring2.5,hibernate3.2,如果你用spring2.0你可以把这个换掉@resource(name="sessionfactory")换成setter方法! 其他的就在spirng.xml文件中配置就行 整合的时候就extends myhibernatedaosupport 这样就行了,这样就可以用分页的方法了,当然上面的方法我自己写的,你也可以自己修改,怎么样写都成!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
压力罐套什么定额
美的炊具BX2C30和YZ1C30有什么区别
中国为什么不扩张
工商银行卡丢了补办挂失多少钱
金林佳园西门怎么去啊,有知道地址的么
打开CAD时一般选用哪种字体
海尔模卡电视打不开应用商店
吉他的乐谱为什么都感觉差不多?
二手07款花冠和07款Polo保养那个便宜啊?
眉飞色舞图片猜成语
经济学研究的三个基本问题是什么?
如何规避免淘宝通过信息层面判断卖家出售假冒
鸿源实惠菜老面馆在什么地方啊,我要过去处理
小时候,人家杀猪从猪肚子里拿了东西出来说可
月嫂证好考吗
推荐资讯
项目管理机制中存在的问题以及解决办法?
梦见被人跟踪
求对联。 好多人都对不出来! 求神对联!
专利批准号和公开号是一回事吗
在安康市果园路单行道逆行了有拍照的吗
进口厨具在哪里能买?
12厘米丁丁
“他们自己可是不会跑,因为腿脚被钱赘的太沉
机械行业如何做好电商?
手机喇叭进水了,怎么办?急!!!
庐江装修公司还挺多的!我个朋友家是 庐江禾
电视怎么可以用wifi网络看电视
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?