El codigo básico sería...
Código:
...
java.net.InetAddress laIA = InetAddress.getByName(request.getRemoteAddr());
String hostname = laIA.getHostName();
...
Y en el tratamiento de errores deberias capturar, en principio, únicamente UnknownHostException, que es la excepción normal del funcionamiento del programa. Si capturas Exception en global, se tragará tambien tus posibles errores de programacion y no sabrás que los tienes, como el caso del primer NullPointerException. Se puede hacer, pero entonces hay que hacer con la excepcion para que puedas saber que paso exactamente, como escribirlo en un fichero de log, etc.
Si es tu primera experiencia con Java, las JSP son una forma de empezar muy poco recomendable, ya que crea malos habitos y oculta cosas misteriosas. Te recomendaría por lo menos al mismo tiempo ir mirando un tutorial de introduccion a Java para ir aprendiendo las cosas básicas del lenguaje como las clases estáticas, tratamiento de excepciones, el classpath etc. Si no se te hará más duro.
El tutorial de Java de Sun, el libro gratuito "Thinking in Java" o sus traducciones, aunque mejor siempre las fuentes, te serviran para eso.
Suerte