Curso De Java
Ra´ l Caballero Ortega (rcortega@di.uc3m.es) u ´ Alvaro S´nchez-Mariscal (mariscal@di.uc3m.es) a
Grupo de usuarios de linux
Univ. Carlos III de Madrid
3 de abril de 2003
Estructura b´sica de un Servlet a
1
Estructura b´sica de un Servlet a
Para construir un Servlet deberemos: 1. Importar: java.io.PrintWriter javax.servlet.* javax.servlet.http.* 2.Extender HttpServlet
3. Implementar doGet, doPost o doXxx
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
Estructura b´sica de un Servlet (Ejemplo) a
2
Estructura b´sica de un Servlet (Ejemplo) a
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class PrimerServlet extends HttpServlet{ public voiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ PrintWriter out = response.getWriter(); out.println("Hola Mundo"); } }
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
Generaci´n de c´digo HTML (I) o o
3
Generaci´n de c´digo HTML (I) o o
Para devolver c´digo HTML deberemos seguir unos pasos: o 1. Indicar qu´vamos a devolver e response.setContentType("text/html"); 2. A˜adir las cabeceras que queramos n response.setHeader(String nombreCabecera, String valorCabecera); 3. Obtener el flujo de salida PrintWriter out = response.getWriter(); 4. Enviar la p´gina a out.println(""); ... out.println("");
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
Generaci´n dec´digo HTML (y II) o o
4
Generaci´n de c´digo HTML (y II) o o
Detalles a tener en cuenta al generar c´digo HTML: o Las cabeceras y el estado de respuesta deben indicarse antes del primer out.println(...); “Conviene” que el documento de respuesta est´ bien formado (acone sejable utilizar validadores o herramientas similares).
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a uAplicaciones web con Java
Ciclo de vida de un Servlet
5
Ciclo de vida de un Servlet
1. Creaci´n: o El servidor crea una unica instancia del servlet y llama al m´todo init ´ e del mismo. Uso: Cuando recibe una petici´n, el servidor arranca un nuevo hilo paro tiendo de la instancia ya creada y sobre ese hilo llama al m´todo e service. Destrucci´n: o Cuando el servidor quiere eliminar lainstancia del servlet llama al m´todo destroy del mismo. e
2.
3.
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
M´todo init e
6
M´todo init e
Se ejecuta una sola vez al crear la instancia del Servlet. Seg´n la configuraci´n el Servlet se instanciar´ u o a • al arrancar el servidor • al recibir la primera petici´n dirigida a ese servleto Es util para establecer par´metros iniciales (conexiones JDBC, p.ej.). ´ a
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
M´todo init y los par´metros iniciales (I) e a
7
M´todo init y los par´metros iniciales (I) e a
Si no vamos a necesitar par´metros iniciales a public void init() throws ServletException{ ... } Si el Servlet necesitapar´metros iniciales a
public void init(ServletConfig config) throws ServletException{ super.init(config); String param = config.getParameter("nombreDelParametro1"); ... } NOTA: la llamada al init de la clase padre es obligatoria.
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
M´todo init y los par´metros iniciales (II) e a
8
M´todo init y lospar´metros iniciales (II) e a
Par´metros iniciales en fichero de conf. del servidor. a El formato de dicho fichero var´ de servidor en servidor. ıa Si hay muchos par´metros, lo mejor es a 1. Meter los par´metros en un fichero a 2. Poner como par´metro inicial el nombre del fichero a
´ c 2002 Alvaro S´nchez-Mariscal, Ra´ l Caballero Ortega a u
Aplicaciones web con Java
Ejemplo de fichero...
Regístrate para leer el documento completo.