ssh框架向session赋值
目的是为了进行权限判断,在用户登录时,如果允许登录,则在数据库中查询该用户的角色和角色所对应的权限,将他们组织成hashmap,我想把这个hashmap放在session...
目的是为了进行权限判断,在用户登录时,如果允许登录,则在数据库中查询该用户的角色和角色所对应的权限,将他们组织成hashmap,我想把这个hashmap放在session中,这样用户只要不退出或者关闭浏览器,他进行访问的时候,就不用总连数据库查询他是否有权限了,现在问题是我对ssh不是很熟悉,要如何在service或者dao中把user对象存到session中啊,我获得session的方法是:
SessionFactory sessionfactory=this.getHibernateTemplate().getSessionFactory();
Session session=sessionfactory.openSession();
这样获得了一个session,创建了query,执行hql
但是这个session没有setAttribute方法,那要怎么放到session里呢?
还有,我获得的这个session要不要关闭啊? 展开
SessionFactory sessionfactory=this.getHibernateTemplate().getSessionFactory();
Session session=sessionfactory.openSession();
这样获得了一个session,创建了query,执行hql
但是这个session没有setAttribute方法,那要怎么放到session里呢?
还有,我获得的这个session要不要关闭啊? 展开
4个回答
展开全部
你理解错误了。这里你需要将用户信息保存到http的session 而不是Hibernate的session 虽然他们的名字相同。
但是hibernate里面的session实际上是一条连接数据库的连接..他是用来处理sql语句 操作数据库的。
而且hibernate的session也没有setAttribute方法
有这个方法的是http的session 通过HttpSession session=httpRequest.getSession();来获得。
然后再session.setAttribute("","")或者struts2的话session.put("","").
http得session的话 你不需要手动关闭它。这个session的生命周期简单的说就是你打开这个网站到你关闭这个网站位置session里面的值都是存在的
但是hibernate里面的session实际上是一条连接数据库的连接..他是用来处理sql语句 操作数据库的。
而且hibernate的session也没有setAttribute方法
有这个方法的是http的session 通过HttpSession session=httpRequest.getSession();来获得。
然后再session.setAttribute("","")或者struts2的话session.put("","").
http得session的话 你不需要手动关闭它。这个session的生命周期简单的说就是你打开这个网站到你关闭这个网站位置session里面的值都是存在的
展开全部
如果要使用setAttriubte方法则需要创建request对象。
即,在文件中添加
HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("user", tempList);
也可以写request.setAttribute("user", tempList);
(记得声明头文件)
这个对象有setAttribute方法。
如此可以把需要的信息放在setAttribute中,在Action中,或者jsp页面中都可以获得setAttribute中的值。
Session session=sessionfactory.openSession();
这个session我个人认为应该关闭。
不知道你需要的是不是这个方法。
即,在文件中添加
HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("user", tempList);
也可以写request.setAttribute("user", tempList);
(记得声明头文件)
这个对象有setAttribute方法。
如此可以把需要的信息放在setAttribute中,在Action中,或者jsp页面中都可以获得setAttribute中的值。
Session session=sessionfactory.openSession();
这个session我个人认为应该关闭。
不知道你需要的是不是这个方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
HttpSession session=httpRequest.getSession();
session.put(权限名, 权限值);
session不要关闭 当用户注销退出再关闭session.invalidate();
取权限
if(session.get(权限名)!=null){
//session中已经存入权限判断结果
Object hasPrivilege=session.get(权限名);//当然可以换成别的类型
}
session.put(权限名, 权限值);
session不要关闭 当用户注销退出再关闭session.invalidate();
取权限
if(session.get(权限名)!=null){
//session中已经存入权限判断结果
Object hasPrivilege=session.get(权限名);//当然可以换成别的类型
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么要放在 Hibernate 的 session中呢?
放在http的session中不是更好?
放在http的session中不是更好?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询