Utilice JSP para leer la información del cliente
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:13:11
Utilice JSP para leer la información del cliente
Por favor lea el siguiente código. Si sus requisitos de uso son diferentes, estos códigos se pueden modificar fácilmente. Estos códigos le permiten obtener:
Empresa empresa, nombre de usuario, versión, versión principal, versión secundaria
Sistema operativo (¡no terminado!), idioma, configuración regional, etc.
Cree un nuevo archivo JSP:
Agregue los siguientes archivos de clase al classpath (debe crear la misma estructura de directorio: de.hunsicker.http.util; por supuesto, también puede ajustar el nombre del paquete usted mismo):
paquete de.hunsicker.http.util;
importar java.util.*;
importar javax.servlet.*;
importar javax.servlet.http.*;
El navegador de clase pública extiende HttpServlet
{
solicitud HttpServletRequest protegida;
sesión HttpSession protegida;
Agente de usuario de cadena protegida;
empresa de cuerdas protegida // Firmenname des Herstellers
nombre de cadena protegida // Bezeichnung des Browsers
versión de cadena protegida // Versión
Cadena protegida mainVersion // Hauptversion
Cadena protegida minorVersion // Unterversión
sistema operativo de cadena protegido // Betriebssystem
lenguaje de cadena protegido = "de"; // Estándar Sprachcode
locale locale protegido // Locale-Objekt mit den aktuellen
// Instalación de instrucciones
Idiomas compatibles con Hashtable privado // Untersttzte Sprachen;
Navegador público (solicitud HttpServletRequest, sesión HttpSession)
{
this.inicializar();
this.request = solicitud;
esta.sesión = sesión;
this.setUserAgent(this.request.getHeader("User-Agent"));
this.setCompany();
this.setName();
this.setVersion();
this.setMainVersion();
this.setMinorVersion();
this.setOs();
this.setLanguage();
this.setLocale();
}
inicialización de vacío público ()
{
this.supportedLanguages = new Hashtable(2);
this.supportedLanguages.put("es", "");
this.supportedLanguages.put("de", "");
}
setUserAgent público vacío (cadena httpUserAgent)
{
this.userAgent = httpUserAgent.toLowerCase();
}
conjunto vacío privadoCompañía()
{
si (this.userAgent.indexOf("msie") > -1)
{
esta.empresa = "Microsoft";
}
de lo contrario si (this.userAgent.indexOf("opera") > -1)
{
esta.empresa = "Opera Software";
}
de lo contrario si (this.userAgent.indexOf("mozilla") > -1)
{
this.company = "Netscape Communications";
}
demás
{
esta.empresa = "desconocida";
}
}
/**
* Liefert den Firmennamen des Herstellers des verwendeten Browsers.
*/
cadena pública getCompany()
{
devolver esta.empresa;
}
nombre de conjunto vacío privado()
{
if (esta.empresa == "Microsoft")
{
this.name = "Microsoft Internet Explorer";
}
else if (esta.empresa == "Netscape Communications")
{
this.nombre = "Netscape Navigator";
}
else if (esta.empresa == "Operasoftware")
{
this.name = "Operasoftware Opera";
}
demás
{
this.name = "desconocido";
}
}
/**
* Liefert den Namen des verwendeten Browsers.
*/
cadena pública getName()
{
devolver este.nombre;
}
setVersion vacío privado()
{
intmpPos;
Cadena tmpString;
if (esta.empresa == "Microsoft")
{
Cadena cadena = this.userAgent.substring(this.userAgent.indexOf("msie") + 5);
this.version = str.substring(0, str.indexOf(";"));
}
demás
{
tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf("/")) + 1, tmpPos + this.userAgent.indexOf(" "))).trim();
this.version = tmpString.substring(0, tmpString.indexOf(" "));
}
}
/**
* Liefert die Versionsnummer des verwendeten Browsers.
*/
cadena pública getVersion()
{
devolver esta versión;
}
conjunto vacío privadoMainVersion()
{
this.mainVersion = this.version.substring(0, this.version.indexOf("."));
}
/**
* Liefert die Hauptversionsnummer des verwendeten Browsers.
*/
cadena pública getMainVersion()
{
devolver this.mainVersion;
}
conjunto vacío privadoMinorVersion()
{
this.minorVersion = this.version.substring(this.version.indexOf(".") + 1).trim();
}
/**
* Liefert die Unterversionsnummer des verwendeten Browsers.
*/
cadena pública getMinorVersion()
{
devolver this.minorVersion;
}
conjunto de vacío privado()
{
si (this.userAgent.indexOf("win") > -1)
{
if (this.userAgent.indexOf("windows 95") > -1 || this.userAgent.indexOf("win95") > -1)
{
this.os = "Windows 95";
}
if (this.userAgent.indexOf("windows 98") > -1 || this.userAgent.indexOf("win98") > -1)
{
this.os = "Windows 98";
}
if (this.userAgent.indexOf("windows nt") > -1 || this.userAgent.indexOf("winnt") > -1)
{
this.os = "Windows NT";
}
if (this.userAgent.indexOf("win16") > -1 || this.userAgent.indexOf("windows 3.") > -1)
{
this.os = "Windows 3.x";
}
}
}
/**
* Liefert den Namen des Betriebssystems.
*/
cadena pública getOs()
{
devolver this.os;
}
setLanguage vacío privado()
{
String prefLanguage = this.request.getHeader("Accept-Language");
si (prefLanguage! = nulo)
{
Idioma de cadena = nulo;
StringTokenizer st = new StringTokenizer(prefLanguage, ",");
elementos int = st.countTokens();
para (int idx = 0; elementos idx; idx++)
{
if (this.supportedLanguages.containsKey((idioma = st.nextToken())))
{
this.idioma = this.parseLocale(idioma);
}
}
}
}
/*
* Función de función de setLanguage().
*/
ParseLocale de cadena privada (lenguaje de cadena)
{
StringTokenizer st = nuevo StringTokenizer(idioma, "-");
si (st.countTokens() == 2)
{
devolver st.nextToken();
}
demás
{
idioma de retorno;
}
}
/**
* Liefert das Lönderkürzel der vom Benutzer
* bevorzugten Sprache.
*/
cadena pública getLanguage()
{
devolver este.idioma;
}
setLocale vacío privado()
{
this.locale = nueva configuración regional (this.language, "");
}
/**
* Liefert ein Locale-Objekt mit der Sprach-Prferenz des verwendeten Browsers
*/
configuración regional pública getLocale()
{
devolver this.locale;
}
}