Comenzamos el día con un repaso del lenguaje HTML, que es vital para poder seguir avanzando en el módulo.
El lenguaje HTML es por etiquetas y cada etiqueta tiene una función específica.
Todas las etiquetas se abren y también se tienen que cerrar, aunque hay algunas que simplemente no se cierran.
Las etiquetas más básicas que hay son (lo que muestro se debe incluir dentro de los caracteres < >):
- html - etiqueta contenedora de todo el código html
- head - etiqueta contenedora de la cabecera de la página
- title - etiqueta para poner título a la página web
- body
- hr - etiqueta para colocar una barra horizontal
- br - etiqueta para crear un salto de línea.
- a href=enlace_que_queramos - etiqueta para crear un enlace a otra página
Sobre los servlet
A continuación un diagrama del funcionamiento de un servlet. Un navegador web realiza una solicitud http, el servlet lo recoje, procesa la información que deba procesar y devuelve una página hml para el navegador.

Para el correcto funcionamiento de una aplicación web es necesario que tenga una estructura determinada, tal que así:
aplicacion/
_______/archivo.html
_______/archivo.jsp
_______/imgs/...
_______/css/...
_______/masjsps/archivo.jsp
_______/mashtmls/archivo.jsp
_______/WEB-INF/web.xml
_______/WEB-INF/classes/es.cea...
_______/WEB-INF/lib/librerias.jar
Los 6 primeros son archivos accesibles para la página, como son las propias páginas html o jsp, imágenes y las hojas de estilo y también hay una estructura interna para el funcionamiento de la aplicación web.
En WEB-INF se encuentra el archivo de configuración que lee el servidor web Tomcat que es el "web.xml" que sirve principalmente para dar de alta a los recursos de la aplicación.
Dentro de WEB-INF existen dos subcarpetas que son la carpeta "classes", que sirve para introducir las clases de nuestros programas, y la carpeta "lib" que son las librerías que necesiten las aplicaciones.
Como anotación, decir, que los archivos con extensión ".war" son aplicaciones web empaquetadas.
Ronda de ejercicios y explicación
Despues de las explicaciones vino una ronda extensa de ejercicios simples para saber crear un servlet.
Cito aquí las explicaciones y los enunciados de los ejercicios del blog del curso:
¿Cómo crear un servlet?
- Se crea una clase java que herede (extienda) de HttpServlet (javax.servlet.http.HttpServlet)
- se sobreescriben los dos metodos encargados de procesar las solicitudes via GET y via POST
- public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
- public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
- Se reenvia todo lo que pase por doPost a doGet incluyendo en la implementacion del metodo doPost la siguiente linea: doGet(req,res);
- Se escribe la respuesta en el metodo doGet utilizando el objeto Writer a traves del objeto response: res.getWriter()
- Se da de alta el servlet en el archivo de configuración de la aplicación web: web.xml
- Se despliega la aplicación
- Consultamos el servlet en la dirección http://localhost:8090/nombreAplicacion/bienvenida
¿cómo imprimimos los resultados del servlet en la pagina web?
- Accedemos al objeto PrintWriter para imprimir los resultados: PrintWriter pw = res.getWriter();
- Imprimimos lineas con el metodo println("mensaje"): pw.println("HOLA SOY UN SERVLET ");
- Cerramos el objeto de impresion pw.close();
Ejercicios
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/ciudad y que imprima la palabra SEVILLA
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/academia y que imprima la palabra CEA
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/enlaces y que imprima los enlaces del blog del curso
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/formulario y que imprima este formulario
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/calculadora y que imprima este otro formulario
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/registro y que imprima un formulario con los campos usuario y clave y se envie(atributo action) a la direcion /registrar
¿cómo recuperamos los parametros que el usuario nos envia a traves de URLs?
- Accedemos al objeto request y utilizamos su metodo getParameter("nombreParametroEsperado")
- El valor que retorna se lo asignamos a una variable
- si la variable es diferente de null entonces lo imprimios en el resultado
Ejercicios
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/envioFormulario y que imprima los valores nombre y apellidos
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/calcular y que imprima el resultado de los parametros sumando1 y sumando2
- crear otro servlet que responda a la peticion http://localhost:8090/nombreAplicacion/registro y que imprima el resultado de los parametros usuario y clave.
Por último remarcar que en todas las aplicaciones web que realicemos nos pueden saltar excepciones y los tres más frecuentes son:
- NullPointerException - Se intenta invocar, por ejemplo, un método de un objeto no inicializado.
- ClassCastException - El casting de una clase no es la que esperaba.
- ClassNotFoundException - Clase no encontrada.
No hay comentarios:
Publicar un comentario