Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312

    informazione su dispatcher

    Salve a tutti,
    ho realizzato una servlet che prende in input un file da una form html e lo salva sull'hard disk. Fin qui tutto ok. La mia servlet salva il file decidendo, in base ad alcuni criteri, il nome e la cartella di destinazione. e' possibile passare questi due valori di tipo stringa ad una jsp? In poche parole devo fare una banalissima jsp con scritto:" il file è stato salvato col nome :"xxx" nella cartella "xxx"

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: informazione su dispatcher

    Originariamente inviato da lio.b
    e' possibile passare questi due valori di tipo stringa ad una jsp? In poche parole devo fare una banalissima jsp con scritto:" il file è stato salvato col nome :"xxx" nella cartella "xxx"
    Certo, li imposti come "attributi" nello scope "request" (setAttribute() di HttpServletRequest), poi fai un "forward" tramite RequestDispatcher alla pagina JSP e nella pagina JSP puoi prendere tali valori in vari modi: tramite scriptlet usando request.getAttribute() o tramite EL (expression language) anche eventualmente in combinazione con JSTL ad esempio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Come si fa? la mia servlet è questa:

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    processRequest(request, response);
    MultipartRequest a = new MultipartRequest(request,path,5000000,new DefaultFileRenamePolicy());
    String originalName = a.getOriginalFileName("picture");
    String keyword = a.getParameter("keyword");
    File f = a.getFile("picture");
    File Repository = new File(repository);
    boolean present = exist(Repository,keyword);
    if(present==false)
    transfer(f,keyword,originalName);
    else{

    newTransfer(f,keyword,originalName);
    }

    in base al valore di un booleano (present) viene attivato un metodo oppure un'altro. Il primo crea una cartella e ci copia il file rinominandolo. Il secondo fa la stessa cosa ma prende una cartella esistente

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da lio.b
    Come si fa?
    Prima della fine di doPost() imposti gli attributi, es.:

    codice:
    request.setAttribute("nomeFile", strNomeFile);
    (dal tuo codice non so/capisco quali di quelli vuoi impostare ... vedi tu, ovviamente)

    Poi fai il forward:

    codice:
    RequestDispatcher dispatcher = request.getRequestDispatcher("/blabla.jsp");
    dispatcher.forward(request, response);
    Nella pagina JSP, se volessi usare JSTL, potresti fare:

    codice:
    Nome file: <c:out value="${requestScope.nomeFile}"/>
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Allora, dalla post, con setAttribute prendo il valore keyword, il file lo salvo direttamente con le librerie o'reilly. Ora, sulla base al codice che ti ho mandato supponiamo che parta il sottometodo transfer che ti riporto (effettua un trasferimento di un file):

    private static void transfer(HttpServletRequest request,File a,String key,String name){
    String directory = repository + separator + key;
    new File(directory).mkdir();
    File f = new File(directory + separator + name);
    // trasferimento file
    try{
    BufferedInputStream source = new BufferedInputStream(new FileInputStream(a));
    BufferedOutputStream dest = new BufferedOutputStream(new FileOutputStream(f));
    int val;
    do {
    val = source.read();
    if (val >= 0) {
    dest.write(val);
    }
    } while (val >= 0);
    dest.close();
    source.close();
    a.delete();


    }
    Devo inoltrare alla jsp il nome della direcory e del file f, non il percorso. Come faccio ad impostare setAttribute?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da lio.b
    Devo inoltrare alla jsp il nome della direcory e del file f, non il percorso. Come faccio ad impostare setAttribute?
    Ma non ho capito il dubbio ... hai o non hai questi due dati separati? Se hai solo un oggetto java.io.File, puoi comunque ottenerli (vedi metodi di File).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Il dubbio è... prima di tutto devo passare la stringa key...la sintassi qual'è?
    SetTrribute ("key", ?) come secondo parametro?
    Dopodichè devo passare il nome del file che ha come puntatore f

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da lio.b
    Il dubbio è... prima di tutto devo passare la stringa key...la sintassi qual'è?
    SetTrribute ("key", ?) come secondo parametro?
    Dopodichè devo passare il nome del file che ha come puntatore f
    Ma l'ho detto prima, es:

    codice:
    request.setAttribute("nomeFile", strNomeFile);
    Il primo parametro è un String ed è il nome dell'attributo. Il secondo parametro di setAttribute() è un java.lang.Object, quindi tecnicamente può essere qualunque cosa ... devi saperlo poi tu, che cosa, per gestirlo in modo appropriato successivamente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Quindi metto "key" come stringa e fin qui ci sono. Poi che devo fare, creare un object a cavolo? Non riesco a seguirti, devo solo passare quella maledetta stringa....
    Creo un object a cavolo del tipo Object dir = new Object() e lo passo come secondo parametro? se puoi scriverlo in codice mi fai un grandissimo piacere

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da lio.b
    Quindi metto "key" come stringa e fin qui ci sono. Poi che devo fare, creare un object a cavolo? Non riesco a seguirti, devo solo passare quella maledetta stringa....
    Hai un String?? Passalo!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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 © 2024 vBulletin Solutions, Inc. All rights reserved.