是否可以在java Web应用程序中获取客户端os用户名?

时间:2013-10-09 07:32:23

标签: java javascript jsf java-ee applet

我的网站托管在本地服务器上,这个网站是由几个本地用户访问的,当我尝试使用java代码时,我希望当他们访问特定页面以获取访问此页面的客户端/用户的操作系统用户时: / p>

String currentUser=System.getProperty("user.name"); 

它获取服务器的os用户名而不是客户端。

请告知如何实现这一目标,谢谢。

3 个答案:

答案 0 :(得分:0)

String userAgent = request.getHeader("User-Agent");

您可以从此网站获取所有用户代理值的完整列表, http://www.user-agents.org/

Javascript Way

var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";

并将OSName变量发送回服务器。

答案 1 :(得分:0)

创建包含applet的jar,其中applet可以使用System.getProperty("user.name")获取当前用户名 将httpclient写在同一个applet中,它将当前用户名发送到服务器上的servlet。

  1. 调用当前用户方法是applet

  2. 将用户名分配给httpclient

  3. 使用httpclient

  4. 将用户名发送到servlet

    您的程序提供的服务器用户名不是客户端,这就是您必须使用客户端技术的原因,例如位于客户端计算机中的applet。

答案 2 :(得分:0)

使用java方法request.getRemoteUser()就可以了。