Notas de estudio de Jsp&Servelet (1)
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:15:10
1.1 Escribir un programa de servidor
1.2 Escribir un programa Jsp
1.3 Compilar un programa Servlet
1.4 Empaquetar un programa Servlets y Jsps
1.5 Construir un descriptor de implementación
1.1 Escribir un programa de servidor
Problema Quiere escribir un servlet como una aplicación web. Solución Escriba una clase Java que herede de javax.servlet.http.HttpServlet. Primero, se debe llenar un paquete de clase servlet.jar. Necesitará la biblioteca de clases interna para compilar este programa de servlet.
Discusión Un programa servlet es una clase java que se utiliza para responder al contenido dinámico solicitado por el cliente a través de la red. Si está familiarizado con los programas (CGI), los servlets de tecnología Java pueden reemplazar completamente los programas CGI. A menudo denominado componente web, un programa servlet ejecutado en un entorno de ejecución será proporcionado por un contenedor de servles como Tomcat y Bea WebLogic.
Nota: Un contenedor web puede ser
Los servlets se instalan en un contenedor web como parte de una aplicación web. Esta aplicación contendrá recursos WEB. Como páginas HTML, imágenes, clips multimedia, servlets, jsps, archivos de configuración xml, clases de tiempo de ejecución de Java y bibliotecas de clases. Cuando una aplicación web se implementa en un contenedor web, el contenedor generará y cargará instancias de la clase de servlet de Java en la JVM. Manejar solicitudes de servlets.
Todos los servlets heredan la interfaz javax.servlet.Servlet. Los programadores que desarrollan aplicaciones web escriben un servlet especial.
Heredada de javax.servlet.http.HttpServlet, una clase abstracta implementa la interfaz Servlet y está diseñada específicamente para manejar solicitudes HTTP.
Cuando un contenedor web genera una instancia de servlet, su secuencia básica es la siguiente:
1. El contenedor de servlets primero llama al método init() del servlet, que inicializará un recurso para que lo utilice el servlet. Catalogado como registrador. Este método init() solo se llamará una vez durante todo el ciclo de vida del servlet.
2. El método init() inicializa un objeto, que hereda la interfaz java.servlet.ServletConfig. Este objeto permite al servlet inicializar los parámetros declarados en el descriptor de implementación. ServletConfig también le da al servlet acceso a un objeto javax.servlet.ServletContext, que el servlet puede usar para registrar información, enviar solicitudes a otros componentes web y usar otros recursos web en la misma aplicación.
3. El contenedor de servlet llama al método service() de este servlet para responder a algunas solicitudes del servlet. Basado en HttpServlets, service() llama automáticamente al método HTTP apropiado para manejar la solicitud llamando al método doGet() o doPost() del servlet. En varios ejemplos, el usuario envía una solicitud de publicación y el servlet responde a la solicitud ejecutando el método doPost().
4. Al llamar a los métodos doPost() y doGet() de los dos HttpServlets principales, el contenedor de servlets generará objetos javax..servlet.http.HttpServletRequest y HttpServletResponse y los pasará como parámetros a estos métodos de procesamiento de solicitudes.
http://www.downcodes.com/
5. Administre el ciclo de vida de un servlet o determine el tiempo de procesamiento de esta instancia de servlet en la solicitud de solicitud y el tiempo de existencia en la máquina virtual Java. Cuando un contenedor de servlets comienza a eliminar un servlet, se llamará al método destroy() del servlet, en el que se pueden liberar todos los recursos, como una conexión de base de datos.
Ejemplo Un HttpServlet típico
paquete com.mydev;
importar java.io.IOException; importar java.io.PrintWriter;
importar java.util.Enumeration; importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServlet;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpServletResponse;
//Debe heredar la interfaz HttpServlet
La clase pública FirstServlet extiende HttpServlet ...{
public void doGet (solicitud HttpServletRequest, respuesta HttpServletResponse) arroja ServletException, java.io.IOException ...{
//establece el tipo MIME de la respuesta, "text/html"
respuesta.setContentType("texto/html");
//usa un PrintWriter para enviar datos de texto al cliente que ha solicitado el
//servlet
java.io.PrintWriter fuera = respuesta.getWriter( );
//Comienza a ensamblar el contenido HTML out.println("<html><head>");
out.println("<title>Página de ayuda</title></head><body>");
out.println("<h2>Envíe su información</h2>");
//asegúrate de que método="post" para que el método del servicio servlet
//llama a doPost en la respuesta al envío de este formulario
out.println( "<form método="post" acción ="" + request.getContextPath( ) + "/firstservlet" >");
out.println("<table border="0"><tr><td valign="top">");
out.println("Su nombre: </td> <td valign="top">");
out.println("<tipo de entrada="texto" nombre="nombre" tamaño="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Su apellido: </td> <td valign="top">");
out.println("<tipo de entrada="texto" nombre="apellido" tamaño="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("Su correo electrónico: </td> <td valign="top">");
out.println("<tipo de entrada="texto" nombre="correo electrónico" tamaño="20">");
out.println("</td></tr><tr><td valign="top">");
out.println("<input type="submit" value="Enviar información"></td></tr>");
salida.println("</table></form>"); salida.println("</body></html>");
}
//hacerObtener
public void doPost (solicitud HttpServletRequest, respuesta HttpServletResponse) arroja ServletException, java.io.IOException ...{
//muestra los nombres y valores de los parámetros
ParamNames de enumeración = request.getParameterNames( );
Nombre del par de cadena;
//esto contendrá el nombre del parámetro
booleano vacíaEnum = falso;
if (! paramNames.hasMoreElements())
Enumeración vacía = verdadero;
//establece el tipo MIME de la respuesta, "text/html"
respuesta.setContentType("texto/html");
//usa un PrintWriter para enviar datos de texto al cliente
java.io.PrintWriter fuera = respuesta.getWriter( );
//Comenzamos a ensamblar el contenido HTML
out.println("<html><cabeza>");
out.println("<title>Parámetros enviados</title></head><body>");
si (emptyEnum) ...{
out.println( "<h2>Lo sentimos, la solicitud no contiene ningún parámetro</h2>");
} demás ...{
out.println( "<h2>Aquí están los valores de los parámetros enviados</h2>");
}
while(paramNames.hasMoreElements( )) ...{
parName = (Cadena) paramNames.nextElement( );
out.println( "<strong>" + parName + "</strong> : " + request.getParameter(parName));
out.println("<br />");
}//mientras
out.println("</body></html>");
}
//hacerpublicar
}
Puede notar que doGet() y doPost() generarán ServletException e IOException. Eso se debe a que Response.getWriter() generará una excepción IO.
http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx