La verdad es que veo varias cosas mal, aunque no he revisado mucho el código y puede que me equivoque en algo.
- Tu variable en el formulario se llama dniAdmin y sin embargo buscas dni.
- Supongo que estarás probando el login básico, porque no veo que estés ni encriptando ni desencriptando.
- No controlas las excepciones, por lo que es prácticamente imposible que te pueda redirigir a la página de error que pretendes. Por ejemplo un dni de 6 dígitos, peta y no te redirigirá a ningún lado.
- No deberías guardar los datos private String dni, pass,en el servlet. No entiendo por qué lo haces, pero decirte que el servlet se instancia una vez para todo el mundo.
http://www.adrformacion.com/cursos/j...tutorial3.html Cita: Instanciación y carga en memoria: se produce tras levantar Tomcat y leer el descriptor de despliegue web.xml de la aplicación a la que pertenece. Implica la creación, por parte del contenedor, de un objeto servlet mediante el método estático de java.lang.Class forName(String s) y el método newInstance() de Class.
A efectos prácticos es como si guardases esas variables como static.