Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [JAVA/JSP] Recuperare dati da servlet

    Ho impostato l'inclusione del mio package di classi Java all'interno del mio file .jsp, ho configurato il mio file web.xml della directory interessata...ora mi interessa sapere la sintassi di una cosa che in sincerità non ho capito come s'imposta.

    Se ho un metodo di una servlet che mi restituisce un array di interi, come faccio a recuperare questi dati dalla mia pagina jsp ?

    grazie mille e scusate la domanda banale..
    BillyCorgan.it
    http://www.billycorgan.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Tu puoi raggiungere una servlet come una risorsa HTTP: ovvero con un GET (digitando l'url relativo nella barra indirizzi) o con POST (tipico metodo per l'invio dei form html).

    Nella servlet devi aver definito (o meglio, fatto 'overriding') i metodi doGet e doPost, che raccolgono appunto la richiesta http e possono elaborarla.

    All'interno di quei metodi ed in funzione dei parametri che vengono passati deciderai quale altro metodo invocare.

  3. #3
    ok, questo me l'hai chiarito, però il browser mi dice che è impossibile trovare la pagina...

    eppure la mia "prova.jsp" sta in

    C:\....\webapps\autoload\Training

    e da jsp in metodo Get chiamo

    <FORM ACTION="http://localhost/Training/WEB-INF/classes/GetRisultato" METHOD="GET"

    NAME="frmMio">

    nel metodo doGet() di GetRisultato ho solo fatto una out.println("prova");

    ..ma non vedo nulla.
    dove sbaglio ?

    Grazie mille
    BillyCorgan.it
    http://www.billycorgan.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Ok, ecco il problema.
    Le servlet (e tutte le classi nel percorso root/web-inf/classes) non sono risorse direttamente accessibili via http.

    Si fa cosi:
    1. Si crea una servlet che estende javax.servlet.http.HttpServlet
    2. si fa overriding di doPost e doGet

    Affinchè sia raggiungibile, va configurata la servlet nel file di configurazione web.xml (presumo che tu stia utilizzando tomcat).

    Apri il tuo web.xml e aggiungi queste linee:
    codice:
    <servlet>
        <servlet-name>miaServlet</servlet-name>
        <servlet-class>tuoPackage.tuaClasse</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>miaServlet</servlet-name>
        <url-pattern>/urlServlet</servlet>
    </servlet-mapping>
    In questo modo hai detto al server:
    a. esiste una servlet, cui associo un nome logico 'miaServlet'
    b. la servlet è implementata dalla classe tuoPackage.tuaClasse
    c. la servlet è raggiungibile via http tramite il percorso root/urlServlet

    per cui il tuo form html diventa
    <form name="..." method="post" action="/urlServlet">...</form>

    Bada bene che ogni volta che modifichi il web.xml o il codice di una delle classi della webapp devi riavviare il server o quanto meno la tua applicazione

  5. #5

    ok

    ok..mi rimane un dubbio sull'impostazione del web.xml perchè ora l'ho cambiato ma il tomcat non mi vede più quella cartella avviata..

    codice:
    <servlet>
        <servlet-name>miaServlet</servlet-name>
        <servlet-class>marco.data.GetRisultato</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>miaServlet</servlet-name>
        <url-pattern>/marco/data/</servlet>
    </servlet-mapping>
    ho impostato così..e i file sono configurati

    ..../web-inf/classes/marco/data/GetRisultato.class
    ..../web-inf/prova.jsp


    grazie
    BillyCorgan.it
    http://www.billycorgan.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    prova.jsp spostalo fuori da li, la cartella web-inf non è accessibile via http

    per quanto riguarda web.xml questo è un esempio completo

    codice:
    <?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>Servlet</servlet-name>
    		<servlet-class>prova.Prova</servlet-class> 
    	</servlet>
    
    	<servlet-mapping>
    		<servlet-name>Servlet</servlet-name> 
    		<url-pattern>/serv</url-pattern> 
    	</servlet-mapping>
    
    </web-app>
    se avevi messo solo i tag servlet e servlet mapping sballava il parser, per quello non ti tirava su l'applicazione

  7. #7

    uhm

    uhm..scusami! prova.jsp era fuori da WEB-INF :P

    ..il file web.xml ha anche la parte superiore che mi fa riconoscere i file in quella directory, ma quando ci aggiungo la parte di servlet non mi riconosce più nulla.

    BillyCorgan.it
    http://www.billycorgan.it

  8. #8
    ok, ora è attivo tutto, non mi trova solamente la servlet quando faccio il GET da JSP
    BillyCorgan.it
    http://www.billycorgan.it

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    argh

    il codice lo hai scritto nel metodo doGet()?

    Posta il codice della servlet, il web.xml e l'errore che ti da

  10. #10
    web.xml

    codice:
    <?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>miaServlet</servlet-name>
        <servlet-class>marco.data.GetRisultato</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>miaServlet</servlet-name>
        <url-pattern>/prova.jsp</url-pattern>
    </servlet-mapping>
    </web-app>
    metodo doGet();

    codice:
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    	PrintWriter out = response.getWriter();
    	out.println("sono in doGet");
    	out.close();
    }
    l'errore è

    type: Status report

    message: /Training/WEB-INF/Classes/GetRisultato

    description: The requested resource (/Training/WEB-INF/Classes/GetRisultato) is not available.
    BillyCorgan.it
    http://www.billycorgan.it

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.