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

    [J2EE]Come si mette una Servlet su un server?

    Allora: ho appena completato la mia servlet. Ora vi spiego cosa ci devo fare.
    Avete presente quelle immaginette con dei codici di verifica scritti in maniera sghemba, che dovete leggere e scrivere in un form per verificare che la registrazione che state compiendo sia opera di un uomo? Ecco il programma che ho fatto è proprio questo
    http://it.wikipedia.org/wiki/CAPTCHA
    Questa servlet deve essere hostata su un server e richiamata da siti hostati su altri server anche di diverso tipo. Inoltre dato che da ogni sito faccio una chiamata di questo tipo per ottenere il codice che mi genera la servlet
    codice:
    String c=(String)session.getAttribute(PAR.PARServlet.PAR_SESSION_KEY);
    devo poter usare script di vario tipo (php, asp e altri) per controllare che la password generata si a uguale a quella visualizzata, dipendentemente dal linguaggio del sito su cui metto questa immaginetta.

    Come si mette in pratica la servlet su un server? SU quale tipo di server è mettibile? QUali tipi di linguaggi si interfacciano con Java per fare quel controllo di cui sopra?


    Grazie mille
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    230
    Non credo esiste un modo generico per mettere in opera una servlet su di un server, perchè diepende dal tipo di server (Tomcat mette a disposizione alcune cartelle, altri server ne usano altre) dalla struttura della web application cioè se hai una cartella in cui depositi le servlet e in tutto questo probabilmente dovrai aggiornare qualche file del server tipo il web.xml per fargli prendere visione che hai creato una servlet, insommma dovresti speciicare quantomeno su quale server vuoi far girare la servlet
    Ciao

  3. #3
    ipotizziamo che io la voglia mettere su un server linux e che la richiamino un sito in php hostato su un server linux e un sito in asp hostato su un server windows.

    che si deve fare?
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Dentro linux metti tomcat, apri tomcat, apri webapps, crei una cartela chiamata "miaApplicazione" (o quello che preferisci), crei al suo interno una cartella WEB-INF, dentro metti un file chiamato web.xml (correttamente scritto per fare il deploy della servlet) e una cartella classes, dentro classes metti la parte java (nel tuo caso il bytecode della tua servlet assumendo che non sia dentro nessun package). Torni nella cartella principale di Tomcat, apri bin e avvii Tomcat con il file statup.sh (perche' sei su linux).
    Ora la servlet e' accessibile da
    codice:
    http:\\IpServer:portaServer\miaApplicazione\indirizzoServletInFileWebXml
    Se usi un'altro servletContainer basta che guardi nella documentazione, tanto si somigliano tutte le procedure.

    La seconda parte non la capisco. Il fatto che tu la richiami da altri siti su altri server che problemi ti crea? Sulla rete viaggia html (php,asp, jsp e servlet sono tecnologie lato server, una volta uscite dal server sono semplici pagine html), quindi l'utente A chiama www.sitoPhp.it/index.php che spedisce al browser la pagina tradotta in html, fa click sul link che punta alla servlet che ritorna semplice html e cosi' via... Se intendi condividere informazioni importanti come sessioni, ecc, non puoi a meno di passarle attraverso POST o GET (sconsigliabile e pericoloso perche' un qualsiasi utente puo' scrivere a mano ed emulare il comportamento della servlet aggirando la sicurezza.)

  5. #5
    grazie intanto per la rispota mi ha chiarito la prima parte...

    per la seconda tento di spiegarmi meglio.

    ipotesi:
    noi abbiamo da una parte la servlet e da un'altra, per esempio, una pagina in php che ha nel proprio codice la chiamata alla mia servlet che mi genera un'immagine, in questo modo
    codice:
    [img]url/PAR.JPG[/img]
    sempre nella pgina in php avremo il form che io dovrò completare col codice che vedo nell'immaginetta.
    questo form vorrei che mi mandasse la stringa digitata a una pagina in .jsp che mi controlla che la risposta data da form sia identica alla password con la quale si è generata l'immagine.
    la password infatti la richiamo come detto sopra così
    codice:
    String c=(String)session.getAttribute(PAR.PARServlet.PAR_SESSION_KEY);
    e quindi credo di aver bisogno che sia per forza un jsp(smentitemi in caso contrario).
    per ultimo vorrei che la jsp inviasse alla php, per esempio un true o false.
    vorrei però che la jsp venisse eseguita in maniera invisibile, che l'utente non la veda insomma.

    insomma in sintesi, siccome qui in azienda devo seguire alcune specifiche vorrei che:
    - la jsp non venisse caricata, ma solo eseguita in background per così dire

    DUBBIO: non si può in nessun modo richiamare una variabile java da una pagina php (o asp) senza passare per forza da un jsp? altrimenti ci eviteremmo questo passaggio intermedio.

    grazie ancora
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    DUBBIO: non si può in nessun modo richiamare una variabile java da una pagina php (o asp) senza passare per forza da un jsp? altrimenti ci eviteremmo questo passaggio intermedio.
    No, le variabili salvate in session non si muovono dal server java.
    vorrei però che la jsp venisse eseguita in maniera invisibile, che l'utente non la veda insomma.
    Facendo un redirect o un forward all'interno della jsp con gli appositi tag <jsp:...>, l'utente non vede il passaggio della jsp.
    per ultimo vorrei che la jsp inviasse alla php, per esempio un true o false.
    Qua ci potrebbe essere un problema di sicurezza. L'unico modo che le due pagine hanno per comunicare e' quello di mandare i dati in GET o POST. Mettiamo POST per un minimo di sicurezza in piu'. Un utente malizioso non deve far altro che scoprire il nome del parametro restituito dalla jsp e scriversi un programma che invia in automatico richieste che seguono il protocollo per saturarti l'applicazione di richieste.

  7. #7
    a parte il fatto che a livello jsp non ne so quasi niente , tra cui cose come redirect o forward(se vuoi/puoi me ne puoi dire di più?), ma a parte ciò.
    le informazioni che ritengo debbano essere sicure sono, solo la password che passo dalla servlet al jsp. dell'invio del true o false cosa ci potrebbe fare l'eventuale utente malizioso? cioè quello che mi interessa è che non legga la password, e che non la digiti per registrarsi.
    non esiste un database di password, non esiste un archivio di immagini, le password sono generate in maniera assolutamente casuale, se fai refresh per esempio la password precedente è già inutile e c'è una probabilita di 1/26^6 nel caso pessimo che tu la possa ritrovare.

    non appena parte la digitazione dell'invio richiesta dalla pagina php ormai è andata o no?
    che ne pensi?
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    La registrazione la fa la pagina jsp quindi?
    Avevo capito cosi':
    codice:
    paginaPHP1 -(codiceAlfanumericoDigitato)-> paginaJSP -(true/false)-> paginaPHP2
    l'ultima pagina php se riceve true fa la registrazione. Probabilmente avevo capito male io.
    Per il forward basta inserire nella pagina jsp
    codice:
    <jsp:forward page="http://www.tua.url">
       <jsp:param name="nomeParametro" value="valore">//Qua puoi inserire da 0 a N tag <jsp:param />
    </jsp:forward>

  9. #9
    Si si avevi capito bene, tranne nell'ultima parte. devo fare in modo che la jsp ritorni true o false alla php1! sarà poi tale pagina che reinderizzerà l'utente alla pagina successiva a seconda del valore di ritorno (true : continua la registrazione, false: ricarico la stessa pagina php con una nuova immaginetta)

    come faccio però a passare il codice alfanumerico digitato alla pagina jsp?
    e ancora, come faccio a passare true o false dalla jsp alla php?
    Tu mi dici che l'unico modo che hanno per comunicare queste due pagine è tramite POST e GET, ma qui il nostro capo rompiballe (siamo due stagisti universitari) dice di non voler mettere le mani sui metodi POST e GET dei suoi 400 siti.
    Siamo un pò confusi sul da farsi...

    grazie della pazienza!
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Mmmh...
    Immagino che nella pagina 1 avrai qualcosa tipo
    codice:
    <form action="www.server.it/tua/jsp" method="post">
       vari input
       <input type="text" name="codiceAlfaNum"/>
       <input type="hidden" name="indirizzo" value="INDIRIZZODELLAPAGINA1"/>
       <input type="submit" value="Registrati"/>
    </form>
    Poi nella jsp
    codice:
    <%
    String indirizzo = request.getParameter("indirizzo");
    String codice = request.getParameter("codiceAlfaNum");
    String c=(String)session.getAttribute(PAR.PARServlet.PAR_SESSION_KEY);
    String esito=false;
    if(c.equals(codice)) esito=true;
    %>
    <jsp:forward page="<%= indirizzo %>">
       <jsp:param name="esito" value="<%= esito %>" />
    </jsp:forward>
    Il problema di sicurezza che ti dicevo prima e':
    se qualcuno si scrive un programma che genera in maniera casuale i dati richiesti dalla tua prima pagina e invia a questa pagina una richiesta con tali dati e esito=true, cosa succede?
    Bypassa il CAPTCHA e simula una richiesta che ha passato il test.

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.