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

    [AJAX] risultati di una servlet java da autoaggiornare

    Ciao a tutti,
    ho scritto una piccola servlet che prende, dato un input dall'utente, i risultati relativi da wikipedia. Vorrei far comparire questi risultati all'interno della pagina che contiene un form di ricerca senza dover ricaricarla totalmente.
    Il massimo sarebbe che i risultati apparissero man man che l'utente digita nell'apposito campo di ricerca per wikipedia.

    Leggendo un pò in giro credo che con ajax ciò sia realizzabile ma essendone a digiuno non sò bene da dove partire...

    Conoscete qualche consiglio? tutorial? sito? che potrebbe aiutarmi?

    Grazie a tutti.

    codice:
    PrintWriter out = this.getResponse().getWriter();
    String testo_ricerca =  this.getRequest().getParameter("search");
    URL paginaWebURL = new URL("http://it.wikipedia.org/w/index.php?title=Special%3ASearch&search="+testo_ricerca+"&fulltext=Ricerca");
    StringBuffer buffer = new StringBuffer();
    BufferedReader in = new BufferedReader(new InputStreamReader(paginaWebURL.openStream()));
    String inputLine;
    String result = "";
                while ((inputLine = in.readLine()) != null){
                                        if (inputLine.startsWith("<hr />[b]"))
                                                inputLine = inputLine.substring(inputLine.indexOf("<li style="));
                                        if (inputLine.startsWith("<li style=")){
                                            result = inputLine;
                                            result = result.replace("href=\"", "href=\"search.jsp?category=");
                                            out.println(result);
                                        }    
                                    }
                                    in.close();
    Il risultato che dà per la ricerca "html.it" è:
    codice:
    <li style="padding-bottom: 1em;">Newsgroup della gerarchia it.*
    <span style="color: green; font-size: small;">Pertinenza: 100.0% -  - </span>
    <li style="padding-bottom: 1em;">Girolamo Sirchia
    <span style="color: green; font-size: small;">Pertinenza: 96.5% -  - </span>
    <li style="padding-bottom: 1em;">Crisalide AzioneTrans
    <span style="color: green; font-size: small;">Pertinenza: 92.6% -  - </span>
    <li style="padding-bottom: 1em;">OPAC
    <span style="color: green; font-size: small;">Pertinenza: 92.2% -  - </span>
    <li style="padding-bottom: 1em;">Cerignola
    <span style="color: green; font-size: small;">Pertinenza: 91.4% -  - </span>
    <li style="padding-bottom: 1em;">Uso della pena di morte nel mondo
    <span style="color: green; font-size: small;">Pertinenza: 91.2% -  - </span>
    <li style="padding-bottom: 1em;">Tiranni di Gela e Siracusa
    <span style="color: green; font-size: small;">Pertinenza: 90.2% -  - </span>
    <li style="padding-bottom: 1em;">Esperimento Atlas
    <span style="color: green; font-size: small;">Pertinenza: 89.7% -  - </span>
    <li style="padding-bottom: 1em;">Capena
    <span style="color: green; font-size: small;">Pertinenza: 87.2% -  - </span>
    <li style="padding-bottom: 1em;">Foglio di stile
    <span style="color: green; font-size: small;">Pertinenza: 87.0% -  - </span>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non sono sicurissimo ma credo che ajax non possa eseguire richieste esterne al dominio, ma forse mi sbaglio vedi qui
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    No...non vado fuori dominio...ajax deve solo interfacciarsi con la servlet. E' quest'ultima che si occupa di contattare wikipedia e restituisce i risultati in html che dovrebbero essere ricevuti dalla funzione ajax.

    Giusto?
    Qlc dritta?

    Semplificando.... diciamo che al click di un pulsante vorrei caricare una pagina esterna (p.e.: esempio.html) in un div predisposto in precedenza in maniera cross-browser...fattibile?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma io ho sempre utilizzato ajax per interrogare un db, la tua è una richiesta diversa. Se ho capito bene dovresti eseguire una ricerca su wikipedia in tempo reale pertanto io digito "pico palla" e tramite ajax ricevere i risultati, il problema secondo me, sta nella risposta del server che a sua volta dipende dalla risposta del db di wikipedia. Forse è possibile ma sicuramente complesso e difficile per un neofita di ajax.
    Oltre a documentarti con il link precedente guarda anche qui. La mia domanda è non ti conviene visualizzare la pagina di risposta in un iframe? Così non ricarichi la pagina ma ti semplifichi l'operazione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Xdona l'ignoranza...ma che differenza cè dal prendere i risultati da un db e prenderli da una servlet...x ajax non dovrebbe far differenza!!! Poi che la servlet a sua volta prenda i dati da un dominio esterno è un discorso a parte in cui ajax non rientra...a mio parere. Cioè ajax deve solo verificare che la servlet abbia i dati disponibili e quindi presentarli...
    ...forse sono io ad avere una visione sbagliata di questa tecnologia!

    Ora, supponi che i dati li prenda da un db anzichè da wikipedia...come sarebbe il codice da scrivere?

    Molto carini gli effetti presentati nel link...ma a livello server-side non presentano il codice?
    Xè in effetti se riuscissi a fare un polling in tempo reale su wikipedia man mano che l'utente digita nel campo di ricerca verrebbe fuori veramente una cosa fatta bene!!
    Mi riferisco a questo Demo: http://demo.script.aculo.us/ajax/autocompleter

  6. #6

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.