Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    48

    Conferma Upload da Servlet

    Ciao a tutti!
    Vi spiego il mio problemino:
    nella pagina web che ho creato è possibile fare l'upload di file di testo formattati come tabelle che contengono dei dati geografici.
    nel momento in cui l'upload è eseguito con successo compare una pagina molto stupida in cui c'è scritto:
    "UPLOAD ESEGUITO CON SECCESSO! File caricato: nomefile.txt Nella cartella Upload/Tabelle"

    Ovviamente questa pagina è creata lato server dalla servlet, come risposta alla richiesta di upload, in questo modo:

    protected void upload(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("Upload!");
    MultipartRequest mpr = new MultipartRequest(request,webTempPath,
    5 * 1024 * 1024);
    Enumeration<String> enums = mpr.getFileNames( );
    response.setContentType("text/html");
    file = mpr.getFilesystemName(enums.nextElement());
    filePath = webTempPath + "//" + file;
    PrintWriter out = response.getWriter( );

    out.println("<html>");
    out.println("<head>");
    out.println("<title>Servlet upload</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<center><font face=\"Tahoma\" size=\"4\">UPLOAD DEL
    DATASET ESEGUITO!</font>



    ");
    out.println("<center>The name of uploaded file is: "
    + file + "


    ");
    out.println("Nella cartella Upload/Tabelle");
    out.println("


    <a href=\"index.html\">
    <img src=\"ico/home1.gif\"</a></center>");
    out.println("</body>");
    out.println("</html>");
    }

    La mia richiesta è questa...è molto semplice, ma nonostante questo, non riesco proprio a trovare una soluzione plausibile: è possibile far comparire questa pagina di conferma upload come un popup, quindi con dimensioni ridotte, e non come una pagina intera? (se fosse possibile eliminerei anche il link al ritorno alla pagina principale!)

    Aspetto ansioso vostre notizie!!

    Intanto vi ringrazio...ciao ciao!!

    Angelo

  2. #2
    Potresti seguire 2 stade:
    1)inviare la richiesta con javascript, ricevere la risposta e visualizzarla in un popup
    2)inviare la richiesta come fai adesso con l'unica differenza che alla fine della servlet elimini tutti gli out.println(..) ed effettui un dispatcher.forward verso la pagina in cui si trova la form di upload inviando un attributo di tipo stringa che poi all'interno della JSP ottieni e inserisci nel tag body nell attributo onLoad:
    Codice PHP:
    //nella servlet
    ....
    request.setAttribute("msg","UPLOAD AVVENUTO CON SUCCESSO");
    dispatcher.forward(request,response);
    ...

    //nella JSP che contiene la form

    <%String msg = (String) request.getAttribute("msg");%>
    <
    body <%if(msg!=null){%> onload="alert(<%=msg%>);" <%}%> >
    ...
    </
    body
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    48
    Ho provato a usare javascript, facendo una chiamata asincrona, e facendomi rimandare un xml con il messaggio da visualizzare, ma se nella servlet faccio come risposta l'xml, allora non mi funziona l'upload (nel senso che mi dà errore prima, nel meccanismo di upload), mentre se lascio la pagina html (e quindi non risolvo il problema) allora mi funziona!

    Inoltre, come si usa il dispatcher, che non ho ben capito? Come creo l'oggetto dispatcher?

    Ancora grazie mille,
    ciao ciao

  4. #4
    Non ho ben capito quali problemi hai riscontrato con ajax. Considera che usando ajax potresti anche monitorare l'avanzamento dell'upload tramite una progress bar, prova a vedere
    qui e a documentarti con qualche ricerca.

    Per quando riguarda RequestDispatcher, puoi crearlo a partire dal Context della servlet (this.getServletContext.getRequestDispatcher(...)) . Il forward è simile, al redirect (response.sendRedirect()), una specie di redirect interno al server, ma anche in questo caso ti consiglio di documentarti per capire bene le differenze.

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.