永发信息网

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

答案:2  悬赏:10  手机版
解决时间 2021-03-05 09:46
  • 提问者网友:记得曾经
  • 2021-03-04 18:34
springmvc hibernate怎么实现同一时间只能一个账号登录
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-03-04 18:59
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"; }
全部回答
  • 1楼网友:北方的南先生
  • 2021-03-04 20:01
呵呵,这个是肯定的啊 还有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 这样就行了,这样就可以用分页的方法了,当然上面的方法我自己写的,你也可以自己修改,怎么样写都成!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯