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 这样就行了,这样就可以用分页的方法了,当然上面的方法我自己写的,你也可以自己修改,怎么样写都成!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯