2012-04-01 16 views
12

Desidero conoscere la struttura di directory per l'utilizzo del servlet 3.0 con Tomcat 7. Ho usato l'annotazione @WebServlet senza parametri di inizializzazione.servlet 3.0 @WebServlet usa..quello sarà in web.xml?

Voglio sapere che cosa deve essere scritto nel file web.xml allora ?? È ed è ancora da scrivere ... ??

Il file è archiviato nella cartella delle classi del tomcat.

+3

Non hai bisogno di alcun web.xml. Per favore guarda [qui] [1]. Ha spiegato. [1]: http://stackoverflow.com/questions/9967062/servlet-3-0-import-package-of-annotation –

risposta

23

Questo è tutto ciò che serve in 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-compatibile servlet container (come Tomcat 7) troverà @WebServlet automaticamente.

+0

ok thanks..so web.xml predefinito sarà bene .. – user460920

+0

Qualsiasi attributo è obbligatorio per queste annotazioni @WebServlet ?? – user460920

+0

import javax.servlet.annotation.WebServlet; Che cosa è qui servlet, annotation e WebServlet una classe o un'interfaccia nel pacchetto javax? – user460920

2

Ho letto la risposta di Tomasz Nurkiewicz che è stata pubblicizzata da 22 persone fino ad ora. Si prega di notare, ha risposto 4 anni fa.

Mi chiedevo perché avevo bisogno di un file xml quasi vuoto?

e ho provato con un mondo ciao con Servlet 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>"); 
    } 
} 

e sono in grado di eseguire questa piccola applicazione web con successo.

enter image description here

Nota importante:

si prega di notare, non v'è non esiste web.xml in questo esempio.

enter image description here

Quindi, noi facciamo non necessità questo tipo di quasi-vuoto web.xml.

ma, web.xml è obbligatoria, se avete bisogno di autenticazione basata su form (ma, senza sicurezza Primavera) .because, non v'è alcuna annotazione equivalente disponibile per <login-config>.

Secondo questo post in 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> 

... l'unico modo per configurare l'autenticazione basata su form è quello di utilizzare descrittore di deployment (web.xml o web-fragment.xml).

Secondo JSR-315 Servlet 3.0 Specification :: Ch13.6.3 (pg132):

"L'applicazione deployment descriptor Web contiene le voci per una forma login e la pagina di errore ..."

Specifica solo riferisce al descrittore di distribuzione Web per la configurazione di forma di login, e non qualsiasi annotazione configurazione sede

UPDATE:.

Quanto sopra strike informazioni relative a Java EE6.

In Java EE7, Possiamo fare basata su form di autenticazione modo programmatico ..

Dal Java EE7 official tutorial,

48.3.1 autenticare gli utenti livello di programmazione

I seguenti metodi dell'interfaccia HttpServletRequest consentono a di autenticare gli utenti per un programma di applicazioni Web camente.

autenticazione permette un'applicazione di avviare l'autenticazione del chiamante richiesta dal contenitore da all'interno di una richiesta vincolata contesto. Una finestra di dialogo di accesso visualizza e raccoglie il nome utente e la password ai fini dell'autenticazione.

login consente a un'applicazione di raccogliere il nome utente e la password informazioni come alternativa a specificare l'autenticazione basata su form in un'applicazione distribuzione descrittore.

disconnessione consente a un'applicazione di ripristinare l'identità del chiamante di una richiesta .

+0

perché downvote? giustificare per favore –

+0

La domanda è ... cosa sarà in web.xml? Ho risposto come se ci fosse "niente". C'è qualcosa di sbagliato nel commentare l'altra risposta? Sono confuso. –

Problemi correlati