Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    web.xml Java Server Pages

    Salve,
    ho un problema con il web.xml. Utilizzo apache tomcat v8.0 con Eclipse Luna ed ho creato un Dynamic Web Project. In java Resources ho creato un package LogIn dove inserisco tutte le classi e le servlet inerenti al modulo di autenticazione. Nel dettaglio c'è la servlet LoginServlet che legge i parametri della pagina index.jsp e li visualizza nel browser. Ora se ho il web.xml il server apache non si avvia, diversamente funziona. Qualcuno sa aiutarmi? Grazie, di seguito posto la servlet, il web.xml e index.jsp

    LoginServlet

    codice:
    package LogIn;
    
    
    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;
    
    
    /**
     * Servlet implementation class LoginServlet
     */
    @WebServlet(description = "Questa servlet riceve username e password dalla pagine index.jsp e controlla se le credenziali dell'utente", urlPatterns = { "/LoginServlet" })
    public class LoginServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public LoginServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
        }
    
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            
            PrintWriter out=response.getWriter();
            
            out.println("test valore username: "+username);
            out.println("test valore password: "+password);
            
        }
    
    
    }
    index.jsp

    codice:
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Benvenuto nel protocollo informatico</title>
    </head>
    <body>
    <form action="Login" method="post" name="autenticazioneUtenti">
        <table>
            <tr>
                <td>Username</td>
                <td><input type="text" name="username"/></td>
            </tr>
            <tr>
                <td>Password</td>
                <td><input type="password" name="password"/></td>
            </tr>
            <tr>
                <td><input type="submit" name="login"/></td>
                <td><input type="button" name="reset"/></td>
            </tr>
        </table>
    </form>
    </body>
    </html>
    web.xml

    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>Protocollo</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
          <servlet-name>LoginServlet</servlet-name>
          <servlet-class>LogIn.LoginServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>LoginServlet</servlet-name>
          <url-pattern>/LoginServlet</url-pattern>
      </servlet-mapping>
    </web-app>

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Considerando che il servlet declaration e il servlet-mapping vengono fatti sul file web.xml, mi pare ben difficile che la servlet possa funzionare senza tale file (non sapendo dove andarla a reperire, né a quale URL mapparla).

    Ben più probabile che tu abbia aggiunto manualmente un tuo file web.xml, probabilmente nel posto sbagliato, che va in conflitto con quello che Eclipse avrà sicuramente creato automaticamente. Di conseguenza a te sembrerà che "senza il file" funzioni.

    E' così? Hai creato tu manualmente un file web.xml? E se sì, dove lo hai messo?

    Il file web.xml deve risiedere dentro alla directory "WEB-INF" della web-application... sono abbastanza sicuro (anche se non uso Eclipse) che se crei un Dynamic Web Project su Eclipse, quest'ultimo crei automaticamente tale file nel posto giusto e faccia da solo tutte le operazioni di declaration e mapping con le servlet.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Considerando che il servlet declaration e il servlet-mapping vengono fatti sul file web.xml, mi pare ben difficile che la servlet possa funzionare senza tale file (non sapendo dove andarla a reperire, né a quale URL mapparla).

    Ben più probabile che tu abbia aggiunto manualmente un tuo file web.xml, probabilmente nel posto sbagliato, che va in conflitto con quello che Eclipse avrà sicuramente creato automaticamente. Di conseguenza a te sembrerà che "senza il file" funzioni.

    E' così? Hai creato tu manualmente un file web.xml? E se sì, dove lo hai messo?

    Il file web.xml deve risiedere dentro alla directory "WEB-INF" della web-application... sono abbastanza sicuro (anche se non uso Eclipse) che se crei un Dynamic Web Project su Eclipse, quest'ultimo crei automaticamente tale file nel posto giusto e faccia da solo tutte le operazioni di declaration e mapping con le servlet.


    Ciao.
    Hai la febbre Lele.... E' la prima volta che ti vedo dare una risposta non corretta....
    Con nuovo standard jsr non c'è + bisogno (o meglio non per forza) di specificare le servlet nel web.xml.
    Infatti eclipse non lo genera + in automatico ma solo su richiesta...

    Ora ritornando alla discussione, il problema è che ovviamente nn puoi lasciare entrambe le configurazioni, mi spiego meglio
    se usi @WebServlet ovviamente nel web.xml non devi mapparla altrimenti giustamente il servlet container non hai idea quale delle due configurazioni debba prendere... Quindi o usi il web.xml o usa le annotation

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Più che la febbre è stata distrazione unita ad abitudine... non ho ancora preso per mano il nuovo standard JSR (continuo ad usare il vecchio approccio, a me più familiare) e non avevo proprio visto quella annotation.

    Mi scuso per l'errata risposta.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Innanzitutto grazie ad entrambi per la risposta precisa e puntuale. In realtà il web.xml è vero che Eclipse lo genera in modo facoltativo ed io in questo caso l'ho generato, però se non lo genero ho dei problemi per quanto riguarda gli indirizzamenti (o meglio suppongo che i problemi sono dovuti alla mancanza del file di conf). Mi spiego Meglio. Se il mio sito ha come indirizzo http://localhost:8080/nomesito/index.jsp tutte le servlet hanno come indirizzo /nomeservlet e non ho problemi, ma nel momento in cui ho delle cartelle, ad esempio http://localhost:8080/nomesito/registrazione/index.jsp, nel momento in cui invio i dati alla servlet, magari con degli errori e la servlet fa il dispatcher alla jsp precedente per la correzione, al successivo rinvio del modulo non mi trova più la servlet perchè l'indirizzo diventa http://localhost:8080/nomesito/nomeservlet al posto di http://localhost:8080/nomesito/registrazione/index.jsp . Per questo credevo opportuno configurare il web.xml . Nella realtà sapete indicarmi se vi sono altre soluzioni a cui posso rifermi? Grazie per l'aiuto

  6. #6
    Occhio io non ho detto che devi eliminare il web.xml, anzi ci mancherebbe, l'unica cosa è che o scegli di fare il mapping delle servlet in esso oppure usi le annotation per configurarle, entrambi non le puoi usare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.