Su mejor apuesta es el encabezado User-Agent. Se puede conseguir así en JSP o servlet,
String userAgent = request.getHeader("User-Agent");
La cabecera tiene este aspecto,
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.13) Gecko/2009073021 Firefox/3.0.13
Proporciona información detallada sobre el navegador. Sin embargo, es un formato bastante libre, por lo que es muy difícil descifrar cada uno. Solo necesita averiguar qué navegadores admitirá y escribir el analizador para cada uno. Cuando intente identificar la versión del navegador, siempre verifique primero la versión más nueva. Por ejemplo, IE6 user-agent puede contener IE5 para compatibilidad con versiones anteriores. Si primero verifica IE5, IE6 también se categorizará como IE5.
se puede obtener una lista completa de todos los valores de agente de usuario de este sitio web,
http://www.user-agents.org/
Con User-Agent, puede indicar a la versión exacta del navegador. Puede obtener una muy buena idea sobre el sistema operativo, pero es posible que no pueda distinguir entre las diferentes versiones del mismo sistema operativo, por ejemplo, Windows NT y 2000 pueden usar el mismo agente de usuario.
No hay nada sobre la resolución. Sin embargo, puede obtener esto con Javascript en una llamada AJAX.
Ambos enlaces se ahora muerto. – Stefan
@Stefan: Gracias, corregido. –