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);
}
}