javaFX保存登录信息

接上个话题,项目需要添加登录按钮,并保存密码,在客户端关闭后重新启动是能够显示记录的用户名密码。区别于BS架构中将登录信息存储到session中,这里是将登录信息持久化到properties文件中,下次登录时读取文件中信息,回显到登录窗口中。

javaFX保存登录信息_第1张图片

    @Getter
    private static int rememberUser = 1;

     @FXML
    protected void handleSubmitButtonAction(ActionEvent event) {
    String loginName = username.getText(); // 获得输入框的用户名密码
    String passWord = password.getText();


        rememberUser = remember.isSelected() ? 1 : 0;
        if (rememberUser == 1) {
            // 记住密码 持久化到文件中
            System.out.println("记住密码");
            if (!loginName.isEmpty() && !passWord.isEmpty()) {
                Properties prop = new Properties();
                try {
                    FileOutputStream oFile = new FileOutputStream("user.properties", false);
                    prop.setProperty(loginName, passWord);
                    prop.store(oFile, null);
                    oFile.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
  }

客户端退出再登录时,判断文件是否存在,存在则读取回显到输入框中

@Override
    public void initialize(URL location, ResourceBundle resources) {
        Properties prop = new Properties();
        try {
            if (new File("user.properties").exists()) {
                InputStream in = new BufferedInputStream(new FileInputStream("user.properties"));
                prop.load(in);
                Iterator it = prop.stringPropertyNames().iterator();
                while (it.hasNext()) {
                    String key = it.next();
                    username.setText(key);
                    password.setText(prop.getProperty(key));
                }
                in.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

javaFX保存登录信息_第2张图片

你可能感兴趣的:(javaFX)