sto preparando l'esame di Basi di Dati e quindi per le prime volte provo a destreggiarmi con Servlet, Tomcat e in generale con la realizzazione di pagine HTML dinamiche in Java a partire da Database.
Seguendo le dispense del corso ho provato a realizzare una Servlet. Purtroppo (ma anche no) nelle dispense le istruzioni riguardano l'accesso tramite Postgresql ad un database speficico che è presente nei laboratori dell'università. Io ho replicato il database a casa mia, ma in Mysql. Quindi devo cambiare il codice della servlet in modo che si connetta con il database sul server Mysql.
Per fare ciò, seguendo le istruzioni che ho trovato qui, ho inserito nella Servlet le seguenti righe, nel metodo doGet:
Codice: Seleziona tutto
String user = "usernameCheUso";
String passwd = "passwordCheUso";
String url = "jdbc:mysql://localhost:8080/esercitazione3";
//Caricamento del driver JDBC per il database
try {
Class.forName("org.gjt.mm.mysql.Driver");
}
catch (Exception cnfe)
{
out.println("Driver jdbc non trovato: " + cnfe.getMessage());
}
Codice: Seleziona tutto
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>ServletCorsoStudi</servlet-name>
<servlet-class>ServletCorsoStudi</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletCorsoStudi</servlet-name>
<url-pattern>/ServletCorsoStudi</url-pattern>
</servlet-mapping>
</web-app>
A questo punto, se cerco di avviare la servlet andando col browser alla pagina http://localhost:8080/CorsoStudi/ServletCorsoStudi, ottengo come messaggio un bel
[glow=red,2,300]Driver jdbc non trovato: org.gjt.mm.mysql.Driver[/glow]
A questo punto presumo che la pagina venga trovata, ma l'errore sta nell'importazione del driver JDBC per Mysql.
Ho controllato quindi che nel classpath ci fosse il percorso del driver, e c'è ($CLASSPATH --> :/usr/share/java/servlet-2.3.jar:/usr/lib/mysql-connector-java-5.0.6/mysql-connector-java-5.0.6-bin.jar).
Ho pensato anche che potrebbe essere un problema dovuto al fatto che il percorso di "connector" viene aggiunto al classpath dal file .bashrc, quindi viene caricata l'istruzione solo quando apro la shell. La shell la apro prima di caricare la pagina nel browser, ma magari pensavo che il cambiamento del classpath potrebbe non influire sull'ambiente del browser, ma solo su quello della shell... ha senso? In tal caso come faccio a cambiare in modo "globale" il CLASSPATH in modo che il file .jar contenente il driver JDBC sia visto anche dalla pagina web?
Grazie per ogni aiuto, e scusate se sono stato prolisso. (z)

