使用Java从服务器检测浏览器
我正在使用以下代码缓存不同的浏览器,我无法缓存特定的浏览器 有人能给我一些建议吗使用Java从服务器检测浏览器,java,jsp,jakarta-ee,Java,Jsp,Jakarta Ee,我正在使用以下代码缓存不同的浏览器,我无法缓存特定的浏览器 有人能给我一些建议吗 if (user.contains("msie")) { String substring = userAgent.substring(userAgent.indexOf("MSIE")).split(";")[0]; browser = substring.split(" ")[0].replace("MSIE", "IE") + "
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;
}
为什么需要服务器端代码,可以用javascript轻松实现
function detect() {
var browser;
var version;
var platform = navigator.platform;
if (platform == "iPad" || platform == "iPhone" || platform == "iPod" || platform == "iPod touch") { // For iPhones iPads and iPods
var userAgent = navigator.userAgent.toUpperCase();
var chromeIndex = userAgent.indexOf("CRIOS");
var opera = userAgent.indexOf("OPIOS");
var ucIndex = userAgent.indexOf("UCBROWSER");
var coast = userAgent.indexOf("COAST");
var mercury = userAgent.indexOf("MERCURY");
var safari = userAgent.indexOf("SAFARI");
var webkit = userAgent.indexOf("APPLEWEBKIT");
// Chrome detection
if(chromeIndex > 0) {
browser = "chrome";
var arr = userAgent.split("CRIOS/");
arr = arr[1].split(".");
version = arr[0];
}
// Safari detection
else if(opera < 0 && ucIndex < 0 && coast < 0 && mercury < 0 && safari > 0 && webkit > 0) {
browser = "safari";
var arr = userAgent.split("APPLEWEBKIT/");
arr = arr[1].split(".");
version = arr[0];
} else {
browser = "unknown";
version = -1;
}
} else if(platform == "Win32" || platform == "MacIntel") { // For windows and mac
// Browser detection
var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome && !isOpera; // Chrome 1+
var isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6
if (isOpera) {
browser = "opera";
} else if (isFirefox) {
browser = "firefox";
} else if (isChrome) {
browser = "chrome";
} else if (isIE) {
browser = "ie";
} else if (isSafari) {
browser = "safari";
} else {
browser = "unknown";
}
if (browser == "firefox") {
var arr = navigator.userAgent.split("Firefox/");
arr = arr[1].split(".");
version = arr[0];
} else if (browser == "chrome") {
var arr = navigator.userAgent.split("Chrome/");
arr = arr[1].split(".");
version = arr[0];
} else if (browser == "ie") {
var v1 = navigator.userAgent.indexOf("MISE");
var v2 = navigator.userAgent.indexOf("rv:");
if(v1 > 0) {
var arr = navigator.userAgent.split("MSIE ");
arr = arr[1].split(".");
version = arr[0];
} else if(v2 > 0){
var arr = navigator.userAgent.split("rv:");
arr = arr[1].split(".");
version = arr[0];
} else {
version = 11;
}
} else if (browser == "safari") {
var arr = navigator.userAgent.split("AppleWebKit/");
arr = arr[1].split(".");
version = arr[0];
} else if (browser == "opera") {
var arr = navigator.userAgent.split("OPR/");
arr = arr[1].split(".");
version = arr[0];
} else if (browser == "unknown") {
version = -1;
}
} else if(platform == "Android" || platform == "Linux armv7l") { // For android
var userAgent = navigator.userAgent;
var chromeIndex = userAgent.indexOf("Chrome");
var opera = userAgent.indexOf("OPR");
var ucIndex = userAgent.indexOf("UCBrowser");
var coast = userAgent.indexOf("Coast");
var firefox = userAgent.indexOf("Firefox");
// Chrome detection
if(chromeIndex > 0 && opera < 0 && ucIndex < 0 && coast < 0) {
browser = "chrome";
var arr = userAgent.split("Chrome/");
arr = arr[1].split(".");
version = arr[0];
} else if(firefox > 0) { // Firefox detection
browser = "firefox";
var arr = userAgent.split("Firefox/");
arr = arr[1].split(".");
version = arr[0];
} else if(opera > 0) { // Opera detection
browser = "opera";
var arr = userAgent.split("OPR/");
arr = arr[1].split(".");
version = arr[0];
} else { // Unknown browser
browser = "unknown";
version = -1;
}
} else { // For other platforms
version = -1;
browser = "other_platform";
}
函数检测(){
var浏览器;
var版本;
var platform=navigator.platform;
如果(平台==“iPad”| |平台==“iPhone”| |平台==“iPod”| |平台==“iPod touch”){//对于iPhone iPad和iPod
var userAgent=navigator.userAgent.toUpperCase();
var chromeIndex=userAgent.indexOf(“CRIOS”);
var opera=userAgent.indexOf(“OPIOS”);
var ucIndex=userAgent.indexOf(“UCBROWSER”);
var coast=userAgent.indexOf(“coast”);
var mercury=用户代理。指数(“mercury”);
var safari=userAgent.indexOf(“safari”);
var webkit=userAgent.indexOf(“APPLEWEBKIT”);
//铬检测
如果(色度指数>0){
browser=“chrome”;
var arr=userAgent.split(“CRIOS/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}
//狩猎探测
否则如果(opera<0&&ucIndex<0&&coast<0&&mercury<0&&safari>0&&webkit>0){
browser=“safari”;
var arr=userAgent.split(“APPLEWEBKIT/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}否则{
browser=“未知”;
版本=-1;
}
}else如果(平台==“Win32”| |平台==“MacIntel”){//For windows和mac
//浏览器检测
var isOpera=!!window.opera | | navigator.userAgent.indexOf('OPR/')>=0;
//Opera 8.0+(UA检测用于检测闪烁/v8动力Opera)
var isFirefox=typeof InstallTrigger!=“未定义”;//Firefox 1.0+
var isSafari=Object.prototype.toString.call(window.HTMLElement.indexOf('Constructor')>0;
//至少Safari 3+:“[object HTMLElementConstructor]”
var isChrome=!!window.chrome&!isOpera;//chrome 1+
var isIE=/*@cc_on!@*/false | |!!document.documentMode;//至少IE6
if(等参线){
browser=“opera”;
}else if(iFirefox){
browser=“firefox”;
}else if(变色){
browser=“chrome”;
}否则如果(isIE){
browser=“ie”;
}else if(伊萨法里){
browser=“safari”;
}否则{
browser=“未知”;
}
如果(浏览器==“firefox”){
var arr=navigator.userAgent.split(“Firefox/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}else if(浏览器==“chrome”){
var arr=navigator.userAgent.split(“Chrome/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}else if(浏览器==“ie”){
var v1=navigator.userAgent.indexOf(“MISE”);
var v2=navigator.userAgent.indexOf(“rv:”);
如果(v1>0){
var arr=navigator.userAgent.split(“MSIE”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}否则,如果(v2>0){
var arr=navigator.userAgent.split(“rv:”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}否则{
版本=11;
}
}else if(浏览器==“safari”){
var arr=navigator.userAgent.split(“AppleWebKit/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}else if(浏览器==“opera”){
var arr=navigator.userAgent.split(“OPR/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}else if(浏览器==“未知”){
版本=-1;
}
}else if(平台==“Android”| |平台==“Linux armv7l”){//For Android
var userAgent=navigator.userAgent;
var chromeIndex=userAgent.indexOf(“Chrome”);
var opera=userAgent.indexOf(“OPR”);
var ucIndex=userAgent.indexOf(“UCBrowser”);
var coast=userAgent.indexOf(“coast”);
var firefox=userAgent.indexOf(“firefox”);
//铬检测
如果(chromeIndex>0&&opera<0&&ucIndex<0&&coast<0){
browser=“chrome”;
var arr=userAgent.split(“Chrome/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}如果(firefox>0){//firefox检测
browser=“firefox”;
var arr=userAgent.split(“Firefox/”);
arr=arr[1]。拆分(“.”);
版本=arr[0];
}如果(opera>0){//opera检测
browser=“opera”;