Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93

    [JAVA] Problema nell'esecuzione di una servlet

    Ciao a tutti, ho il seguente problema nell'esecuzione di una servlet o meglio non riesco a farla eseguire.In pratica, ho una pagina html con un form che riempio con dei dati che andrebbero passati ad una servlet che ne fa un certo uso.Nel tag form all'attributo action, ho assegnato il nome della servlet, ma non c'è niente da fare...il browser mi dice "Impossibile visualizzare la pagina". Ovviamente il webserver tomcat è in fuzione. Come mai ?

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    com'è il file web.xml dell'applicazione?

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    premetto che l'applicazione non l'ho fatta io....anzi vorrei capire il significato di questo file .xml, ho iniziato ora con le servlet.
    Te lo posto :
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

    <web-app>

    <servlet>
    <servlet-name>
    MostraParametri
    </servlet-name>
    <servlet-class>
    MostraParametri
    </servlet-class>
    </servlet>

    <servlet>
    <servlet-name>
    Pagina
    </servlet-name>
    <servlet-class>
    Pagina
    </servlet-class>
    </servlet>

    <servlet>
    <servlet-name>
    Benvenuto
    </servlet-name>
    <servlet-class>
    Benvenuto
    </servlet-class>
    </servlet>

    <servlet>
    <servlet-name>
    MostraCookies
    </servlet-name>
    <servlet-class>
    MostraCookies
    </servlet-class>
    </servlet>

    <servlet-mapping>
    <servlet-name>MostraParametri</servlet-name>
    <url-pattern>/MostraParametri</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>MostraMappaParametri</servlet-name>
    <url-pattern>/MostraMappaParametri</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>MostraCookies</servlet-name>
    <url-pattern>/MostraCookies</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>Pagina</servlet-name>
    <url-pattern>/Pagina</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>Benvenuto</servlet-name>
    <url-pattern>/Benvenuto</url-pattern>
    </servlet-mapping>

    </web-app>

    poi un'altra domanda....i file vanno messi in qualche cartella particolare di tomcat secondo qualche gerarchia ?

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    L'unico errore che vedo è la mancanza di un elemento <servlet> per MostraMappaParametri.

    La cartella della web application dove l'hai messa?
    come invochi la pagina?

    www.coreservlets.com per scaricarti un testo iniziale sulle servlet.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    Ho risolto il problema ma non so quasi perchè...allora...le cartelle sono così organizzate. Nella cartella webapps di Tomcat ho la mia cartella che si chiamo ProvaServlet, nella quale ho un file registrazione.html che ha un form in cui inserire dei dati e che nell'attributo action del tag form invoca una servlet.Poi ho la cartelle WEB-INF con il file web.xml e la cartella classes con il file .class della servlet.Io purtroppo non ho ancora capito il significato e il modo in cui si costruisci il file web.xml che per quel poco che ho intuito serve a fare una sorta di mapping delle servlet creando dei percorsi virtuali.Mi daresti una spiegazione? Ti ringrazio.

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    I due elementi più semplici per far funzionare una servlet sono <servlet> e <servlet-mapping>. <servlet> serve ad associare un nome alla tua classe servlet:

    Codice PHP:
    <servlet>
        <
    servlet-name>miaserv</servlet-name>
        <
    servlet-class>MiaServlet</servlet-class>
    </
    servlet
    questi elementi associano il nome "miaserv" alla classe MiaServlet.


    Invece <servlet-mapping> associa un percorso della web application ad un nome di servlet;

    Codice PHP:
    <servlet-mapping>
        <
    servlet-name>miaserv</servlet-name>
        <
    url-pattern>/mia</url-pattern>
    </
    servlet-mapping
    in questo caso il percorso

    host/nome_applicazione/mia

    viene associato alla servlet di nome "miasrev"


    Quindi quando arriva la richiesta

    host/nome_applicazione/mia

    il server sa che deve invocare la servlet "miaserv", e dall'elemento <servlet> vede che tale nome è associato alla classe MiaServlet che quindi sarà utilizzata per gestire la richiesta.

    Sul sito che ti ho indicato poi scaricarti un pdf in cui queste cose sono spiegate.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    ...quindi, se ho un package ed all'interno una classe che è una servlet..il suo nome sarà miopackage.servlet.
    All'interno di web-inf avrò la cartella classes e quindi la cartella miopackage con dentro il file .class della servlet.
    Ora se creo il file così :

    <servlet>
    <servlet-name>miaserv</servlet-name>
    <servlet-class>miopackage.servlet</servlet-class>
    </servlet>

    <servlet-mapping>
    <servlet-name>miaserv</servlet-name>
    <url-pattern>/mia</url-pattern>
    </servlet-mapping>

    invocando host/nome_applicazione/mia viene eseguita la servlet.
    Ho fatto questa prova, ma ho visto che se nel file web.xml metto miopackage.servlet oppure solo servlet, tutto funziona sempre bene!
    Nn mi trovo, non dovrebbe essere la stessa cosa...come mai ?

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Per caso nella cartella WEB-INF/classes è rimasto il file class della tua classe non inclusa nel package?

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    funziona tutto...grazie mille

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.