Java怎样获取当前登录用户的用户名,密码。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java怎样获取当前登录用户的用户名,密码。。相关的知识,希望对你有一定的参考价值。

当你使用用户名跟密码登录成功的时候,把用户名跟密码放在范围内.可以是request.setAttribute("username",username);也可以是session.setAttribute("username",username);然后在jsp页面可以用EL表达式拿也可以直接用java代码拿.$sessionScope.username,<%=session.getAttribute("username")%> 参考技术A //在用户名已经存入session的情况下,
HttpSession session = ServletActionContext.getRequest().getSession();
String userId = session.getAttribute("userId");
//然后利用这个userId去查找数据库

//加入session的方法
getHttpServletRequest().setAttribute(key, value);
参考技术B 从输入框获取啊,取得输入框里的值、 参考技术C 1)通过在web.xml中注册一个filter,过滤每次请求,第一次登陆时,将用户信息存放在session中,
之后每次判断session中用户信息是否为空,为空就登陆页面,不为空,你得seesion在任何上下文环境中都可以取出来。
2)springSecurity也可以。
参考技术D request.getSession().getAttribute("你自己取的名字");
这是struts1的取法

在 Java 中获取 Windows 用户的登录时间

【中文标题】在 Java 中获取 Windows 用户的登录时间【英文标题】:Get login time for Windows user in Java 【发布时间】:2016-03-31 16:28:43 【问题描述】:

Java 中有没有办法获取当前用户登录的时间?

我知道,如果你在 Windows 终端中运行quser,它会以分钟的精度列出当前用户的一些基本信息,包括LOGON TIME

是否有系统属性或我可以在 Java 中访问的东西,我可以从中获取用户的登录时间?

如果有一种跨平台的方式来获取当前用户在 Windows、Mac OS、Android 等中的登录时间,则可以获得奖励积分。

【问题讨论】:

你不能创建一个在 shell 上运行 quser 的代码 sn-p 吗? This link 提供了如何从 java 执行 shell 命令的示例。 据我所知,没有可以检索登录时间的 java System 属性。有一个可以获取当前登录的用户,但没有比这更具体的了。你可以试试@robotlos 的建议;不过,我不知道您以后如何提取该值以在您的程序中使用,但也许其他人会这样做。 【参考方案1】:

一个可能的解决方案是像这样使用Runtime.getRuntime().exec()

   public static void main(String[] args) throws Exception 
        Process p;
        StringBuilder sb = new StringBuilder();

        p = Runtime.getRuntime().exec("quser");
        p.waitFor();

        BufferedReader reader
                = new BufferedReader(new InputStreamReader(p.getInputStream()));

        String line = "";
        while ((line = reader.readLine()) != null) 
            sb.append(line + "\n");
        
        System.out.println(sb);
    

能够成功获取我的登录信息:

run:

 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
 robotlos              console             1  Active    1+18:08  3/17/2016 10:36 AM

BUILD SUCCESSFUL (total time: 0 seconds)

要确定正在使用的操作系统,您可以使用System.getProperty("os.name")

为了隔离日期和时间,在我的情况下,因为它是 sb 的最后 3 个子字符串,您可以执行以下操作:

 String[] vals = sb.toString().split(" ");
 String loginTime = vals[vals.length - 3] + " " + vals[vals.length - 2] + " " + vals[vals.length - 1];

虽然这不是最漂亮的解决方案,

System.out.println(loginTime);

将打印出来:

3/17/2016 10:36 AM

【讨论】:

您是否成功地使用本地 Windows 日期时间格式将该值解析为 Date @SashaSalauyou 不确定你在问什么。但就平台而言,这是在 Windows 上运行的。 我的意思是返回Date,而不是String @SashaSalauyou 哦,我认为这没有问题,因为我要附加到String。我并没有真正解析任何东西。 此外,还有一个问题。除了读取 Windows 注册表之外,我找不到读取机器本地日期时间模式的解决方案......

以上是关于Java怎样获取当前登录用户的用户名,密码。。的主要内容,如果未能解决你的问题,请参考以下文章

怎样获取当前登录用户的ID

怎样验证jsp页面输入的用户名与密码和数据库中的一致?

JSP中怎样用session保存并验证用户登录信息

在jsp页面中如何获取到当前登录用户的角色id

ssm实战------用户模块

如何用vbscript获取当前windows登陆的用户名?