使用 Hibernate 登录并存储记录的用户名

2024-01-24

我正在开发一个简单的项目云,其中注册用户登录后可以下载和上传文件。 我正在使用 Eclipse Java EE、JSF 和 Hibernate 进行开发。 在我的项目中,我可以登录用户,如果数据正确,我会打开用户菜单,但无法弄清楚在哪里存储有关登录用户的信息。所以session的概念还不太清楚。我已经阅读了一些有关 Hibernate 和会话的内容,但我还不明白。我需要至少保留当前登录用户的用户名,使用什么对象?哪里?你可以帮帮我吗?谢谢

@ManagedBean
@SessionScoped
public class Login {

private String userId;
private String password;

public Login() {}

public String getUserId() {
    return userId;
}
public void setUserId(String userId) {
    this.userId = userId;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

public String loginUser (){
    SessionHandler s = new SessionHandler();
    Session sessione = s.getDb();
    sessione.beginTransaction();
    Query query = sessione.createQuery( "Select password from Utenti where username= :id" );
    System.out.println("Qui lo prende: " + this.getUserId());
    query.setParameter("id", userId);
    System.out.println("tag debug");
    List<Utenti> res= query.list();
    if(password.equals(res.get(0))){
        this.setUserId(userId);
        return "first";

    }
    else
        return "noaccess";
}

我需要在 TreeBean 中使用 userid 。这是我的 TreeBean:

@ManagedBean
@SessionScoped
public class TreeBean {

@ManagedProperty(value="#{login.userId}")
private String user;

private TreeNode root;
private TreeNode selectedNode;
private Session db;

public Session getDb() {
    return db;
}

public void setDb(Session db) {
    this.db = db;
}

public void setUser(String user) {
    this.user = user;
}

public String getUser(){
    return user;
}

public TreeBean() {  
    root=new DefaultTreeNode("Root", null);
    System.out.println("Prova"+ user);
    recursive(0, root);

}    

在 .xhtml 文件中可以毫无问题地读取用户 ID。为什么? 谢谢


您需要创建一个会话范围的 ManagedBean。登录时,您在该 ManagedBean 中设置用户对象(从数据库获取)。然后,您将能够通过所有应用程序访问它。

另一种方法是直接在会话中设置用户对象:

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Map<String, Object> sessionMap = externalContext.getSessionMap();

进而:

sessionMap.put("attributeName", whateverYouWantToSaveInSession);

但我会选择第一种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Hibernate 登录并存储记录的用户名 的相关文章

随机推荐

  • Django项目重组:无法导入应用程序

    我正在尝试重组我的项目 以符合最新的 Two Scoops of Django 一书 针对 Django 1 11 中的建议 完成重组后 我的应用程序无法导入 secureDash project README rst config ini
  • “未知命令syncdb”运行“python manage.pysyncdb”

    我想创建一个名为 database1 sqlite 的数据库的表 因此我运行以下命令 python 管理 py 同步数据库 但是当我执行命令时 我收到以下错误 未知命令 syncdb 输入 manage py help 以了解用法 但当我跑
  • 在 android 4.4 中,将应用程序从最近的任务中删除会永久终止应用程序及其服务。知道为什么吗?

    与以前的版本不同 在 4 4 中 将应用程序从最近的任务中删除会永久杀死应用程序及其服务 如强制停止 即使它正在运行后台服务 它显示 0 个进程 1 个服务 但服务也不起作用 理想情况下 它不应该终止后台服务 并且在 4 3 之前的版本中也
  • System.InvalidCastException - 在调试中有效,在发布时失败

    UNHANDLED EXCEPTION System InvalidCastException Cannot cast from source type to destination type 06 11 19 39 01 690 I Mo
  • 如何在 CarPlay 模拟器上测试 iOS 应用程序

    我正在尝试开发一个与 CarPlay 兼容的 iOS 应用程序 根据这篇文章iOS CarPlay API 是公开的吗 如何集成CarPlay https stackoverflow com questions 22372095 is io
  • Android 中缩小(或裁剪)对话框背景

    我有一个高分辨率图像 假设为 1900x1200 我想将其用作对话框的背景 它被创建了 Dialog dialog new Dialog this dialog setContentView R layout dialog 对话框布局
  • 始终在 UWP 中的 FlipView 控件上显示导航箭头

    使用鼠标并将鼠标悬停在通用 Windows 平台 UWP 上时FlipView控制显示上一个 下一个导航按钮 然而 当使用触摸或笔时 它们仍然隐藏 这可能会让用户感到困惑 不期待额外的内容 我希望导航按钮始终可见 我怎样才能做到这一点 我们
  • 将第二个全局管理员添加到 Azure AD B2C?

    如何为 Azure AD B2C 添加第二个全局管理员 我们是否将它们添加为访客帐户并分配该访客 GA 添加普通用户时 它说我们无法添加 dot state fl us 电子邮件 我们应该授权它 还是会搞砸我们的主要租户 Azure AD
  • 防止用户生成的内容破坏布局?

    我有一个包含一些用户生成的内容的网站 我希望能够将布局的标记以及用户生成的内容的标记分开 这样 u g 内容就不会破坏网站布局 用户生成的内容是可信的 因为它来自我网络上的已知用户组 但尽管如此 只允许一小部分 html 标签 p ul o
  • 使用 TypeScript 编写 React 高阶组件

    我正在写一个反应高阶组件 HOC https facebook github io react docs higher order components html使用 TypeScript HOC 应该比包装组件多接受一个 prop 所以我
  • 将变量传递到新页面

    我试图从一个页面传递一个变量 加载另一个页面并输入该信息 像这样的东西 当127 0 0 1 test html ID 1234时 location href 127 0 0 1 newpage html if location href
  • Swift - uiDelegate 必须是 UIViewController 或实现 signIn:presentViewController: & signIn:dismissViewController: 方法

    来自Crashlytics 我们在 Google 登录过程中收到大量崩溃报告 崩溃报告如下 Fatal Exception NSInvalidArgumentException uiDelegate must either be a UIV
  • require_once被忽略

    Windows 上的 php 出现奇怪的问题 我的应用程序加载一个 核心 文件 该文件加载设置文件 注册自动加载 进行初始化等 在核心文件的顶部我有 include once config php 这对于当前目录中的任何内容都适用 如果我包
  • TableViewController 或具有用于解析 API 查询的表视图的视图控制器

    我想显示一个姓名列表和列表下的按钮 但不知道该怎么做 创建一个空白视图控制器 然后将带有表视图单元格和按钮的表视图拖到其中是否正确 该按钮将导航至添加名称功能 或者可以直接使用表视图控制器吗 如果我使用空白视图控制器执行此操作 我必须为拖动
  • 在 MonoDroid 上实现 IJavaObject

    我目前正在尝试在类上实现 ILocationListener 以便接收 GPS 更新 这不是在 Activity 上 而是在普通的 C 类上 作为 ILocationListener 合约的一部分 我需要支持 I JavaObject pu
  • Blackberry BrowserField白色空页问题

    你好 我想在 BrowserField 中显示 html 内容 我使用代码 blove 来执行此操作 但我只看到白色的空白页面 BrowserField demo new BrowserField String res p demo p d
  • 异步和等待 - 控制台、Windows 窗体和 ASP.NET 之间的区别

    我一直在学习异步 等待的使用 我想我理解了底层的概念 然而 大多数关于 async await 的 Channel 9 教程 MSDN 文章和 Stack Overflow 答案都使用基于 GUI 的应用程序 Windows 窗体应用程序
  • JDBC 和 MySql 安装和配置

    我必须使用 JDBC 和 MySql 做一个项目 有人可以指导我尝试安装和运行这些该死的东西吗 我不知道该怎么做以及做什么 我一生中从未使用过数据库 所以我不知道 我需要安装 配置什么等 有人可以提供一些有用的链接供我开始吗 Vogella
  • UIButton的addtarget:触摸后未调用!

    我有以下代码 当我按下 UIButton 时 不会调用任何内容 并且不会崩溃 calloutButton UIView alloc initWithFrame CGRectMake left width2 2 3 5 230 230 UIB
  • 使用 Hibernate 登录并存储记录的用户名

    我正在开发一个简单的项目云 其中注册用户登录后可以下载和上传文件 我正在使用 Eclipse Java EE JSF 和 Hibernate 进行开发 在我的项目中 我可以登录用户 如果数据正确 我会打开用户菜单 但无法弄清楚在哪里存储有关