【发布时间】:2015-04-08 07:24:54
【问题描述】:
我正在使用以下代码缓存不同的浏览器,我无法缓存特定的浏览器。
谁能给我一些建议?
if (user.contains("msie")) {
String substring = userAgent.substring(userAgent.indexOf("MSIE")).split(";")[0];
browser = substring.split(" ")[0].replace("MSIE", "IE") + "-"+ substring.split(" ")[1];
} else if (user.contains("safari") && user.contains("version")) {
browser = (userAgent.substring(userAgent.indexOf("Safari")).split(" ")[0]).split("/")[0]+ "-"+ (userAgent.substring(userAgent.indexOf("Version")).split(" ")[0]).split("/")[1];
} else if (user.contains("opr") || user.contains("opera")) {
if (user.contains("opera"))
browser = (userAgent.substring(userAgent.indexOf("Opera")).split(" ")[0]).split("/")[0]+ "-"+ (userAgent.substring(userAgent.indexOf("Version")).split(" ")[0]).split("/")[1];
else if (user.contains("opr"))
browser = ((userAgent.substring(userAgent.indexOf("OPR")).split(" ")[0]).replace("/", "-")).replace("OPR","Opera");
} else if (user.contains("chrome")) {
browser = (userAgent.substring(userAgent.indexOf("Chrome")).split(" ")[0]).replace("/", "-");
} else if ((user.indexOf("mozilla/36.0") > -1)
|| (user.indexOf("netscape6") != -1)
|| (user.indexOf("mozilla/35.0") != -1)
|| (user.indexOf("mozilla/34.0") != -1)
|| (user.indexOf("mozilla/33.1") != -1)
|| (user.indexOf("mozilla/33.0") != -1)
|| (user.indexOf("mozilla/32.0") != -1)
|| (user.indexOf("mozilla/31.0") != -1)) {
browser = "Netscape-?";
} else if (user.contains("firefox")) {
browser = (userAgent.substring(userAgent.indexOf("Firefox")).split(" ")[0]).replace("/", "-");
} else if (user.contains("rv")) {
browser = "IE";
} else {
browser = "UnKnown, More-Info: " + userAgent;
}
} catch (Exception e) {
browser = "Exception: " + userAgent;
}
【问题讨论】:
-
您希望它如何工作?您正在一台未使用的机器上测试浏览器。
-
已在生产环境中测试。
-
弗拉迪斯拉夫:环境无关紧要。当您尝试确定客户端上的浏览器时,此代码在服务器上运行(如您所说)。为此,您需要一些客户端脚本。
-
user和userAgent这两个变量有什么关系?我知道USER-AGENT标头字段,但您不断在这些变量userAgent和user之间切换,这似乎没有关系。进一步注意,您的整个代码都包含在if(user.contains("msie")) {中,这排除了所有其他情况...... -
String browserDetails = request.getHeader("User-Agent");字符串 userAgent = browserDetails;字符串用户 = userAgent.toLowerCase()
标签: java jsp jakarta-ee