Codice completo

Listato 6. Mette assieme le operazioni base

//Dispatcher.javapackage
it.html.controller;
..//
public class Dispatcher extends HttpServlet {
    //Questo oggetto virtualizza l'accesso al database
    DBConnection dbConn;
    UserManager um;
    FileManager fm;
    public void init(ServletConfig conf)throws ServletException{
        super.init(conf);
        //Bisognerebbe inserire questi parametri nel file web.xml, in modo
        //da poterli modificare dinamicamente in caso di modifiche

        String class_driver="org.gjt.mm.mysql.Driver";
        String url_addr="jdbc:mysql://127.0.0.1:3306/filewebapp?user=root&password=xyz";
        dbConn=new DBConnection(class_driver,url_addr);
        
        //Apertura della connessione
        dbConn.openDBConnection();
        um=new UserManagerConcrete(dbConn.getConnection());
        
        //Recuperiamo il path assoluto del web container, che sarà la base del FileManager
        String pathRoot=this.getServletContext().getRealPath("/public");
        fm=new FileManagerConcrete(pathRoot);
    }
    
    public void destroy(){
        //Chiusura della connessione
        dbConn.closeDBConnection();
    }
    
    //Useremo questo metodo come dispatcher in base al parametro op
    //creando un metodo per ogni funzione richiesta

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        String op=req.getParameter("op");
        
        //Creazione di un account
        if (op.equalsIgnoreCase("create"))
            doCreate(req,resp);
        
        //Operazione di login
        if (op.equalsIgnoreCase("login"))
            doLogin(req,resp);
    }
}