我做的是一个web工程,我的数据库中有一个表是用来存储用户身份(Role表,2个字段RoleID和RoleName)的,我想在登陆系统的时候就查找数据库,得到这个表中的结果放到map中,在这一个会话中,我都不再查找数据库,直接从map中取结果,怎么做啊,求教大神
解决方案 »
- 急急急。。请各位高手哥哥姐姐来帮个忙解决难题。谢谢了!
- 16 进制造
- 在windows xp下jar命令不能够用,怎么设置呢?可以使用java,但是jar命令不能够用。
- 有关正规表达式的问题
- 我想在JSP页中显示存储在ORACLE数据库中的图片,500分!
- 我们是否要为了测试而写代码?
- 为什么我的程序打包成jar后就不能访问ORACLE?
- 弱弱的问题^_^在VA中怎么编译调试Servlet程序啊?需要安装什么环境?除了VA还需要什么
- 小弟是新人,请帮忙,发扬一下人道主义精神
- 在 java中 如何调用vc的 dll?
- java HashMap中写入writeObject时写入的什么
- 子类怎么访问父类的属性.
//存到session
session.setAttribute("roleMap",map);
再加上登陆者的自身信息,至少要3个session,这么做貌似有点不合理,继续求
1.全局基础类的数据在web服务器启动的时候加载到缓存里,一般像下拉列表里的基础选项,像国家,省市,部门等等。这里的缓存是全局context,例如application,或者直接存储在类的静态变量里。这里的信息都是全局共用的,不是某一个用户特有的。
2.用户相关的基础来数据是每次当用户登录的时候放到session里的。例如:用户所拥有的菜单权限,用户信息,用户角色等等。也就是说和用户相关的特定信息。
控制器:
public void init() throws ServletException{
Map<String,String> r_map = new HashMap<String, String>();
Map<String,String> d_map = new HashMap<String, String>();
ServletContext context = getServletContext();
try {
Connection conn = JDBCutil.getConnection();
r_map = RoleDao.selectRole(conn);
d_map = DepartmentDao.selectDepartment(conn);
} catch (ClassNotFoundException e) {
logger.error(e.getMessage());
return;
} catch (SQLException e) {
logger.error(e.getMessage());
return;
}
context.setAttribute("r_map", r_map);
context.setAttribute("d_map", d_map);
Context.setServletContext(context);
}
获取类Context:
public class Context {
private static ServletContext sc;
public static void setServletContext(ServletContext context){
sc = context;
}
public static ServletContext getServletContext(){
return sc;
}
}
然后就可以在任何地方使用:context.getAttribute(“r_map”)获取到r_map的值了