我创建了一个java应用程序,其中需要登录凭据才能访问。我如何知道登录的用户是哪个?有什么方法可以知道吗?
我不知道他们是否意识到了疑问,如果不是我试着更好地解释。
---------------- CODE -----------------
private void jBLoginActionPerformed(java.awt.event.ActionEvent evt) {
String sql="select * from logins where username=? and password=? and idTipoLogin=?";
try{
pst=(PreparedStatement) conexao.prepareStatement(sql);
pst.setString(1, jTUser.getText());
pst.setString(2, jPass.getText());
pst.setString(3, jComboBoxTipoLogin.getSelectedItem().toString());
rs=pst.executeQuery();
if(rs.next()){
String idTipoLogin = rs.getString("idTipoLogin");
if (idTipoLogin.equals("Administrador")) {
jTTarefasAdmin ah = new jTTarefasAdmin();
ah.setVisible(true);
}
else {
jTTarefasTecnico eh = new jTTarefasTecnico();
eh.setVisible(true);
}
this.setVisible(false);
}
else{
JOptionPane.showMessageDialog(null, "User Invalid");
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
想法是知道登录系统的用户是什么。 由于有几个用户,我想知道具体登录的内容。
答案 0 :(得分:1)
您可以维护登录用户的集合,我认为HashMap足以满足您的目的。
// This should be a class member
Map<String, String> loggedInUsers = new HashMap<String, String>();
// Now when user logs in add it to the HashMap
loggedInUser.put(jTUser.getText(), jTUser.getText());
// When a user logs out remove the user from the Map
loggedInUser.remove(jTUser.getText());
如果您只想要一个简单的用户列表,那么您可以将它们存储在ArrayList中。
List<String> loggedInUsers = new ArrayList<String>();
loggedInUser.add(jTUser.getText());
答案 1 :(得分:0)
据我所知,您有一个系统可以对用户进行身份验证,同一个用户可以访问其他系统。在这些其他系统上,您想知道用户是谁。
您可以执行此操作:对用户进行身份验证后,创建一个唯一ID并将其放入会话中。然后在每次需要知道用户是否已登录时访问会话。对于其他系统,将该唯一ID传递给系统并允许他们查询用户。
流速: 1.用户登录 2.系统创建一个唯一的ID 3.将该id移动到用户对其他系统发出的每个请求 4.在其他系统上,允许他们访问身份验证服务器并根据ID进行查询。
这需要手动执行,而且有很多系统可以为您处理。
让您入门的链接