Codice completo

Listato 7. Operazioni per la gestione dei file

//Dispatcher.java
private void doCreate(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    //Recupero dei parametri attesi ed esecuzione della funzione
    String user=req.getParameter("user");
    String password=req.getParameter("password");
    String email=req.getParameter("email");
    try {
        um.create(user,password,email);
        fm.createAccount(user);
        resp.getWriter().println("Account creato, prego, autenticarsi per iniziare a pubblicare i file.");
    }catch (SQLException e) {
        resp.getWriter().println("Si è verificata un'eccezione, prego riprovare.");
    }
}

private void doUpload(HttpServletRequest req, HttpServletResponse resp) throws IOException{
    //Recupero dei parametri attesi ed esecuzione della funzione
    String user=req.getParameter("user");
    String dir=req.getParameter("dir");
    //Verifica che l'utente sia autenticato
    if (!isLoggedIn(user,req)){
        //L'utente non è loggato, messaggio di errore
        resp.getWriter().println("Spiacente, devi effettuare il login, per effettuare" +
        " questa operazione!");
        return;
    }
    
    //Deleghiamo la creazione del file lato server alla libreria Apache Upload
    boolean isMultipart = FileUpload.isMultipartContent(req);
    if (isMultipart) try {
        DiskFileUpload upload = new DiskFileUpload();
        //Recuperiamo la lista di file da copiare
        Collection file = upload.parseRequest(req);
        fm.insert(user,dir,file);
        resp.getWriter().println("Il file è stato copiato sul server.");
    } catch (IOException e) {
        //Gestione flusso eccezionale
        resp.getWriter().println("Si è verificata un'eccezione, prego riprovare.");
    } catch (NoMoreSpaceException e) {
        //Gestione flusso eccezionale
        resp.getWriter().println("Spiacente, non hai più spazio a disposizione.");
    } catch (Exception e) {
        //Gestione flusso eccezionale
        resp.getWriter().println("Si è verificata un'eccezione, prego riprovare.");
    }
}

private void doShowfile(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //Recupero dei parametri attesi ed esecuzione della funzione
    String user=req.getParameter("user");
    String dir=req.getParameter("dir");
    try {
        File[] file=fm.getFileList(user,dir);
        //Salviamo l'oggetto nella request, in modo da renderli visibili
        RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/list.jsp");
        req.setAttribute("file",file);
        //alla pagina JSP che verrà inoltrata
        rd.forward(req,resp);
    } catch (IOException e) {
        //Gestione flusso eccezionale
        resp.getWriter().println("Si è verificata un'eccezione, prego riprovare.");
    }
}
..//