2012-04-01 15 views
12

Quiero saber la estructura del directorio para usar servlet 3.0 con Tomcat 7. He utilizado la anotación @WebServlet sin parámetros de inicialización.servlet 3.0 @WebServlet use..what estará en web.xml?

Quiero saber qué se escribe en el archivo web.xml luego? ¿Está y aún debe escribirse ...?

El archivo se almacena en la carpeta de clases del tomcat.

+3

No necesita ningún web.xml en absoluto. Por favor mira [aquí] [1]. Explicado. [1]: http://stackoverflow.com/questions/9967062/servlet-3-0-import-package-of-annotation –

Respuesta

23

Esto es todo lo que necesita en web.xml:

<web-app 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" 
    version="3.0"> 

3,0-compatibles contenedor de servlets (como Tomcat 7) encontrará @WebServlet automáticamente.

+0

bien thanks..so web.xml por defecto va a estar bien .. – user460920

+0

¿Hay algún atributo obligatorio para estas anotaciones @WebServlet? – user460920

+0

import javax.servlet.annotation.WebServlet; ¿Qué hay aquí servlet, annotation y WebServlet una clase o interfaz en el paquete javax? – user460920

2

Leí la respuesta de Tomasz Nurkiewicz que fue votado por 22 personas hasta ahora. Tenga en cuenta que respondió hace 4 años.

Me pregunté por qué necesitaba un archivo xml casi vacío.

y yo tratamos con un hola mundo con Servlets 3.

package com.servlet3; 


import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet("/helloServlet3") 
public class HelloServlet3 extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 

     out.print("<html><body>"); 
     out.print("<h3>Hello Servlet</h3>"); 
     out.print("</body></html>"); 
    } 
} 

y yo soy capaz de ejecutar esta pequeña aplicación web con éxito.

enter image description here

Nota importante:

tenga en cuenta, no es no existe Web.xml en esta muestra.

enter image description here

Por lo tanto, nos No necesidad este tipo de casi vacía web.xml.

pero, web.xml es obligatoria , si necesita autenticación basada en formularios (pero, sin seguridad primavera) .because, no hay ninguna anotación equivalente disponible para <login-config>.

De acuerdo con este post en SO

<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
    <form-login-page>/login</form-login-page> 
    <form-error-page>/login?event=Retry</form-error-page> 
    </form-login-config> 
</login-config> 

... la única manera de configurar la autenticación basada en formularios es mediante el uso de descriptor de despliegue (web.xml o Web-fragment.xml).

De acuerdo con JSR-315 Servlet 3.0 Especificación :: Ch13.6.3 (pg132):

"El descriptor de despliegue de aplicaciones web contiene entradas para un formulario de inicio de sesión y página de error ..."

Especificación solamente refiere al descriptor de despliegue web para la configuración de formulario de inicio de sesión, y no a cualquier anotación configuración basada

UPDATE:.

Lo anterior huelga fuera la información está relacionada con Java EE6.

En Java EE7, Podemos hacer la autenticación basada en formularios forma programática ..

Desde el Java EE7 official tutorial,

48.3.1 Autenticación de usuarios mediante programación

Los siguientes métodos de la interfaz HttpServletRequest le permiten para autenticar usuarios para un programa de aplicación web ticamente

autenticar permite una aplicación para instigar la autenticación de la persona que llama solicitud por el contenedor desde el interior de una solicitud sin restricciones contexto. Un cuadro de diálogo de inicio de sesión muestra y recopila el nombre de usuario y la contraseña con fines de autenticación.

entrada permite que una aplicación para recopilar el nombre de usuario y contraseña información como una alternativa de especificar la autenticación basada en formularios en un descriptor de despliegue de la aplicación .

cerrar sesión permite que una aplicación restablezca la identidad de la persona que llama de una solicitud .

+0

¿por qué downvote? justifica por favor –

+0

La pregunta es ... ¿qué será en web.xml? Respondí como "nada". ¿Hay algo incorrecto en comentar la otra respuesta? Estoy confundido. –

Cuestiones relacionadas