Use JSP para ler informações do cliente
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:13:11
Use JSP para ler informações do cliente
Por favor, leia o código a seguir. Se os seus requisitos de uso forem diferentes, esses códigos podem ser facilmente modificados. Esses códigos permitem que você obtenha:
Empresa, nome de usuário, versão, versão principal, versão secundária
Sistema operacional (não concluído!), idioma, localidade, etc.
Crie um novo arquivo JSP:
Por favor, adicione os seguintes arquivos de classe ao caminho de classe (você precisa criar a mesma estrutura de diretórios - de.hunsicker.http.util, é claro que você também pode ajustar o nome do pacote!):
pacote de.hunsicker.http.util;
importar java.util.*;
importar javax.servlet.*;
importar javax.servlet.http.*;
Navegador de classe pública estende HttpServlet
{
solicitação HttpServletRequest protegida;
sessão HttpSession protegida;
String protegida userAgent;
empresa String protegida; // Firmenname des Herstellers
nome da String protegida; // Configuração dos navegadores
versão de String protegida // Versão
String protegida mainVersion; // Hauptversão
String protegida minorVersion; // Unterversão
String protegida os; // Betriebssistema
linguagem de String protegida = "de"; // Padrão Sprachcode
local protegido locale; // Objeto local com o atual
// Spracheinstellungen
hashtable privado suportadoIdiomas; // Untersttzte Sprachen
navegador público (solicitação HttpServletRequest, sessão HttpSession)
{
this.initialize();
this.request = solicitação;
esta.sessão = sessão;
this.setUserAgent(this.request.getHeader("User-Agent"));
this.setCompany();
this.setNome();
this.setVersion();
this.setMainVersion();
this.setMinorVersion();
this.setOs();
this.setLanguage();
this.setLocale();
}
inicialização pública nula ()
{
this.supportedLanguages = new Hashtable(2);
this.supportedLanguages.put("en", "");
this.supportedLanguages.put("de", "");
}
public void setUserAgent(String httpUserAgent)
{
this.userAgent = httpUserAgent.toLowerCase();
}
private void setCompany()
{
if (this.userAgent.indexOf("msie") > -1)
{
esta.empresa = "Microsoft";
}
senão if (this.userAgent.indexOf("opera") > -1)
{
this.company = "Opera Software";
}
senão if (this.userAgent.indexOf("mozilla") > -1)
{
this.company = "Netscape Communications";
}
outro
{
esta.empresa = "desconhecido";
}
}
/**
* Tenha o nome oficial dos navegadores usados.
*/
String pública getEmpresa()
{
retorne esta.empresa;
}
private void setName()
{
if (esta.empresa == "Microsoft")
{
this.name = "Microsoft Internet Explorer";
}
senão if (esta.empresa == "Netscape Communications")
{
this.name = "Netscape Navigator";
}
senão if (esta.empresa == "Operasoftware")
{
this.name = "Operasoftware Opera";
}
outro
{
this.name = "desconhecido";
}
}
/**
* Informe o nome dos navegadores usados.
*/
String pública getNome()
{
retorne este.nome;
}
setVersion vazio privado()
{
int tmpPos;
String tmpString;
if (esta.empresa == "Microsoft")
{
String str = this.userAgent.substring(this.userAgent.indexOf("msie") + 5);
this.versão = str.substring(0, str.indexOf(";"));
}
outro
{
tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf("/")) + 1, tmpPos + this.userAgent.indexOf(" "))).trim();
this.versão = tmpString.substring(0, tmpString.indexOf(" "));
}
}
/**
* Verifique o número de versões dos navegadores usados.
*/
String pública getVersão()
{
retorne esta.versão;
}
conjunto vazio privadoMainVersion()
{
this.mainVersion = this.version.substring(0, this.version.indexOf("."));
}
/**
* Verifique o número de versão principal dos navegadores usados.
*/
String pública getMainVersion()
{
retorne esta.mainVersion;
}
private void setMinorVersion()
{
this.minorVersion = this.version.substring(this.version.indexOf(".") + 1).trim();
}
/**
* Verifique o número de versão inferior dos navegadores usados.
*/
String pública getMinorVersion()
{
retorne esta.minorVersion;
}
setOs vazios privados()
{
if (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.
*/
String pública getOs()
{
retorne isto.os;
}
private void setLanguage()
{
String prefLanguage = this.request.getHeader("Accept-Language");
if (prefLanguage! = null)
{
Linguagem de string = null;
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);
}
}
}
}
/*
* Hilfsfunktion fr setLanguage().
*/
string privada parseLocale (linguagem de string)
{
StringTokenizer st = new StringTokenizer(idioma, "-");
se (st.countTokens() == 2)
{
return st.nextToken();
}
outro
{
idioma de retorno;
}
}
/**
* Liefert das Lönderkürzel der vom Benutzer
* bevorzugten Sprache.
*/
String pública getLanguage()
{
retorne este.idioma;
}
setLocale vazio privado()
{
this.locale = new Locale(this.idioma, "");
}
/**
* Tenha um objeto local com a preferência dos navegadores usados
*/
Local público getLocale()
{
retorne este.locale;
}
}