Cambia homepage di default nel percorso root per servlet con doGet

Ho un piccolo esperto (indirettamente tramite Netbeans 8.1 e configurazione di tomcat)

E ogni volta che eseguo il progetto, apre il browser con HelloWord sulla radice:

cioè la pagina su http://localhost:8084/ è:

   Start Page    

Hello World!

Ho provato a creare un servlet per sostituirlo utilizzando:

@WebServlet(name = "HomeServlet", urlPatterns = {"/"}) tuttavia, non ha funzionato come previsto.

    Cioè ha ancora mostrato lo stesso ciao mondo su: http://localhost:8084

    Ma ha fatto pasticciare tutti i file sulla radice, ad esempio http://localhost:8084/foo.css veniva gestito da questo servlet e ottenendo la sua risposta.

    Quindi, la mia domanda è (in realtà due):

    Come posso cambiare il contenuto di questa pagina in qualcos’altro?

    O, per lo meno (se il primo è imansible): Posso usare un reindirizzamento permanente sul percorso root per evitare che l’utente veda questa pagina?

    (cioè http 301) per spostare l’utente su http://localhost:8084/home

    Come posso cambiare il contenuto di questa pagina in qualcos’altro?

    Apri il file JSP / HTML / XHTML sottostante in un editor di testo. Questa pagina è identificata dalla voce in web.xml . Se è ad esempio index.jsp , è necessario aprire il file /index.jsp nel contenuto Web del progetto nell’editor di testo incorporato IDE.


    O, per lo meno (se il primo è imansible): Posso usare un reindirizzamento permanente sul percorso root per evitare che l’utente veda questa pagina?

    Questa domanda è pensata male. Non si desidera redirect il visitatore avanti e indietro per tutto il tempo. Vuoi mappare il tuo servlet su root webapp. Per mappare un servlet sul percorso root, utilizzare il modello URL stringa vuoto "" invece del modello URL servlet predefinito "/" come nel tuo tentativo.

     @WebServlet("") 

    O se ancora non sei ancora su Servlet 3.0 , ecco il vecchio modo web.xml .

      yourHomeServlet    

    Se continui a utilizzare il pattern URL servlet predefinito di "/" , devi assumere tutte le responsabilità del servlet predefinito incorporato del contenitore, ad esempio pubblicare risorse statiche come i file CSS, aggiungere intestazioni di cache del browser, supportare il download di file, ecc. Vedi anche il primo link correlato sotto per i dettagli.

    Almeno non c’è bisogno di abusare di per questo. Questo non rappresenta il “file della home page” come molti sembrano aspettarsi. Questo rappresenta “il file predefinito della cartella da servire quando viene richiesta una sottocartella”. Quindi non solo su / , ma anche su /foo/ , /bar/ , ecc.

    Guarda anche:

    • Differenza tra / e / * nel pattern url di mapping servlet
    • Come configurare l’elenco dei file di benvenuto in web.xml

    Ogni volta che definisci un index.jsp in web.xml la pagina di destinazione, quando avvii l’applicazione sarà index.jsp page, ovvero, per impostazione predefinita, il percorso servlet sarà “/index.jsp “( http: // localhost: 8084 / index.jsp ). Tuttavia nel browser che non verrà visualizzato. Nella class servlet è ansible abbinare questo modello e redirect a un’altra pagina se necessario.