1:Hvor skal du placere mysql-connector-java-5.1.13-bin
i Tomcat bibliotek? Skal jeg placere den under Tomcat 6.0\webapps\myapp\WEB-INF\lib
?
Det afhænger af, hvor forbindelserne skal styres. Normalt vil du gerne oprette en forbindelsespoolet JNDI-datakilde for at forbedre forbindelsesydelsen. I så fald administrerer Tomcat forbindelserne og skal have adgang til JDBC-driveren. Du bør derefter slippe JAR-filen i Tomcat/lib
.
Men hvis du gør det på den grundlæggende måde ved at bruge DriverManager#getConnection()
, så er det faktisk lige meget, om du slipper det i Tomcat/lib
eller YourApp/WEB-INF/lib
. Du skal dog indse, at den i Tomcat/lib
vil gælde for alle implementerede webapps og den i YourApp/WEB-INF/lib
vil tilsidesætte den i Tomcat/lib
kun for den bestemte webapp.
2:Skal jeg konfigurere context.xml
eller server.xml
filer?
Det afhænger af, hvor forbindelserne skal styres. Når du bruger en JNDI-datakilde, er det tilstrækkeligt at konfigurere den ved hjælp af YourApp/META-INF/context.xml
som følger (bare opret fil, hvis den ikke eksisterer):
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/yourdb" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost:3306/yourdb"
driverClassName="com.mysql.jdbc.Driver"
username="yourname" password="yourpass"
/>
</Context>
og YourApp/WEB-INF/web.xml
som følger:
<resource-env-ref>
<resource-env-ref-name>jdbc/yourdb</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
Hvis du gør det, er den grundlæggende DriverManager
måde, så er det helt op til dig. Hardcoded, egenskabsfil, XML-fil osv. Du skal klare det selv. Tomcat vil (og kan) ikke gøre noget nyttigt for dig.
Det skal bemærkes, at YourApp/META-INF/context.xml
er specifik for Tomcat og kloner. Hver servletcontainer/appserver har sin egen måde at definere JNDI-ressourcer på. I Glassfish vil du for eksempel gerne gøre det via den webbaserede administrationsgrænseflade.
3:Skal jeg skrive web.xml
fil og skal placeres under Tomcat 6.0\webapps\myapp\WEB-INF
? Hvis Ja, hvad skal så være indholdet af filen?
Du bør altid levere en. Det er ikke kun for at konfigurere ressourcer, men også for at definere servlets, filtre, lyttere og den slags obligatoriske ting for at køre din webapp. Denne fil er en del af standard Servlet API.
Se også:
- Er det sikkert at bruge en statisk java.sql.Connection-instans i et multithreaded-system?
- Hvordan skal jeg oprette forbindelse til JDBC-database/datakilde i en servlet-baseret applikation?
- Hvor skal jeg placere JDBC-driveren til Tomcats forbindelse pool?
- DAO-vejledning - grundlæggende JDBC/DAO-selvstudie, målrettet på Tomcat/JSP/Servlet