2010-11-07 59 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>