2010-11-07 64 views
2

我想让我的jsp页面向用户显示操作系统信息。如何在JSP中显示操作系统信息?

+2

你想要的信息*服务器*或*客户端*? – romaintaz 2010-11-07 11:49:37

+0

我想要服务器和客户端操作系统信息。 – 2010-11-08 09:35:15

+0

显示或包含系统属性是一个信息泄漏漏洞“CWE-615:通过评论的信息曝光”https://cwe.mitre.org/data/definitions/615.html应该避免。 – WaltHouser 2017-06-16 14:14:32

回答

6

服务器端操作系统信息
Java是一个JSP可以找到它正在执行的计算机的操作系统。我们可以使用getProperty()方法来查找系统的系统属性。它返回一个带有OS名称的字符串。它支持java中的各种操作系统。

例子:

<%@ page language="java"%> 
<html> 
<head> 
<title>Example for Printing the OS name</title> 
</head> 

<body> 
<% 
out.println("OS: " + System.getProperty("os.name")); 
%> 
</body> 
</html> 

客户端信息

String agent = request.getHeader ("user-agent"); 
StringTokenizer st = new StringTokenizer (agent ,";"); 
st.nextToken(); 

// Get the user's browser name 
String userBrowser = st.nextToken(); 

// Get the user's operating system name 
String userOs = st.nextToken(); 
3

你最好的选择是用户代理嗅探。它可以通过request.getHeader("user-agent")。甚至还有第三方web服务可以提交此字符串并获取详细信息:http://user-agent-string.info

另一种方法是使用Java小程序并通过System.getProperty("os.name")收集信息。由于用户代理可能被客户端欺骗,因此这更可靠。

1

您可以使用脚本来获得PC的信息,如:

<script> 
    document.write(navigator.userAgent + "<br />"); 
</script>