MiServlet miservlet = new MiServlet ( );
Es usado para crear páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.Puede responder ante peticiones HTTP, mediante los métodos doPost() o doGet().Cuyos parametros son: un objeto de la clase HttpServletRequest y un objeto de la clase HttpServletResponse que tienen la funcionalidad especifica de http en el envio de una respuesta o petición.
doGet() se llama después de una consulta de tipo HTTP GET. Generalmente esto ocurre cuando un usuario pulsa en un enlace o cuando se escribe directamente en la barra del navegador.
doPost() se llama después de una consulta de tipo HTTP POST.Se llama principalmente cuando el envio de datos se hace mediante un formulario HTML, haciendo click en un botón de tipo submit. Se supone que es mas seguro lo cual es ficticio también se supone que es mas rápido.
Los 2 métodos se llaman desde la implementación por defecto del método service() que se encuentra en la clase base HttpServlet.
Normalmente el navegador pide siempre páginas mediante GET y puede enviar datos bajo las dos formas (GET y POST). Las dos diferencias son que:
- GET está restringido a nivel de medida de los parámetros enviados al servidor.
- Se dice que el envio de datos mediante GET puede cuestionar la seguridad debido a que los parámetros se añaden a la URL, pero la seguridad del post como hemos comentado antes no se puede afirmar tampoco.
public void doGet(HttpServlet peticion, HttpServletResponse respuesta){
}
public void doPost(HttpServlet peticion, HttpServletResponse respuesta){
}
}
public void doPost(HttpServlet peticion, HttpServletResponse respuesta){
}
web.xml
Este fichero llamado descriptor de despliegue es usado por los Dinamic Web Projects las rutas URLs se definen aqui para indicar cual servlet es al que hay que acceder.También podemos describir los servlets utilizando anotaciones en la clase del servlet. Para poder utilizar las anotaciones debemos de utilizar un contenedor servlet que implemente la especificación 3.0, sino es así debemos de utilizar el descriptor de despliegue.
Para poder utilizar las anotaciones debemos de importar el paquete annotations y utilizar la anotación @WebServlet(“URL-Pattern”). Vamos a ver nuestros tres ejemplos utilizando las anotaciones:
package paquete; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotations.*; @WebServlet("/ejemplo1") public class HolaMundoServlet extends HttpServlet { public void doGet(HttpServletRequest peticion, HttpServletResponse respuesta) throws ServletException, IOException { PrintWriter salida = respuesta.getWriter(); salida.println("Hola Mundo!"); } }
El primer elemento <web-app> indica el inicio de la aplicación, es dentro de este elemento donde se definen todos los elementos restantes.
El elemento <servlet> define las características de un servlet y a su vez está compuesto por los elementos <servlet-name> y <servlet-class> que indican un nombre corto para el servlet así como el nombre de la clase Java que contiene el servlet, respectivamente. La clase Java se indica con la ruta completa de packages.
Posteriormente se define el elemento <servlet-mapping> para establecer la ubicación en términos de URL. Está compuesto por los elementos <servlet-name> y <url-pattern> que especifican el nombre del servlet que será accedido a través del un patrón URL .
Vamos a ver como definir el descriptor de despliegue para describir los servlets que hemos utilizado en nuestra aplicación de ejemplos. Creamos un archivo nuevo en WEB-INF llamado web.xml con el siguiente contenido:
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>ServletEjemplo1</servlet-name> <servlet-class>paquete.HolaMundoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletEjemplo1</servlet-name> <url-pattern>/ejemplo1</url-pattern> </servlet-mapping> <servlet> <servlet-name>ServletEjemplo2</servlet-name> <servlet-class>paquete.HTMLServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletEjemplo2</servlet-name> <url-pattern>/ejemplo2</url-pattern> </servlet-mapping> <servlet> <servlet-name>ServletEjemplo3</servlet-name> <servlet-class>paquete.HTMLServletConGenerador</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletEjemplo3</servlet-name> <url-pattern>/ejemplo3</url-pattern> </servlet-mapping>A continuación detallamos como sería la implementación en el mapeo de un Listener y un Filter
<listener><listener-class>com.acme.MyConnectionManager</listenerclass> </listener> <listener> <listener-class>com.acme.MyLoggingModule</listener-class> </listener> <filter><filter-name>prePost</filter-name> <display-name>prePost</display-name> <filter-class>com.acme.filter.PrePostFilter</filter-class> </filter> <filter-mapping> <filter-name>prePost</filter-name> <url-pattern>/filter3.jsp</url-pattern> </filter-mapping></web-app>
No hay comentarios:
Publicar un comentario