1:Var ska du placera
mysql-connector-java-5.1.13-bin
i Tomcat-katalogen? Ska jag placera den underTomcat 6.0\webapps\myapp\WEB-INF\lib
?
Det beror på var anslutningarna ska hanteras. Normalt skulle du vilja skapa en anslutningspoolad JNDI-datakälla för att förbättra anslutningsprestandan. I så fall hanterar Tomcat anslutningarna och måste ha tillgång till JDBC-drivrutinen. Du bör sedan släppa JAR-filen i Tomcat/lib
.
Men om du gör det på det grundläggande sättet med DriverManager#getConnection()
, då spelar det faktiskt ingen roll om du släpper det i Tomcat/lib
eller YourApp/WEB-INF/lib
. Du måste dock inse att den i Tomcat/lib
kommer att gälla för alla distribuerade webbappar och den i YourApp/WEB-INF/lib
kommer att åsidosätta den i Tomcat/lib
endast för den specifika webbappen.
2:Behöver jag konfigurera
context.xml
ellerserver.xml
filer?
Det beror på var anslutningarna ska hanteras. När du använder en JNDI-datakälla räcker det att konfigurera den med YourApp/META-INF/context.xml
som följer (skapa bara en fil om den inte finns):
<?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>
och YourApp/WEB-INF/web.xml
enligt följande:
<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>
Om du gör det den grundläggande DriverManager
sätt, då är det upp till dig. Hårdkodad, egenskapsfil, XML-fil, etcetera. Du borde klara det själv. Tomcat kommer inte (och kan) inte göra något användbart för dig.
Det bör noteras att YourApp/META-INF/context.xml
är specifik för Tomcat och kloner. Varje servletcontainer/appserver har sitt eget sätt att definiera JNDI-resurser. I Glassfish till exempel, skulle du vilja göra det genom det webbaserade administratörsgränssnittet.
3:Ska jag skriva
web.xml
fil och måste placeras underTomcat 6.0\webapps\myapp\WEB-INF
? Om ja, vad ska innehållet i filen vara?
Du bör alltid tillhandahålla en. Det är inte bara för att konfigurera resurser, utan också för att definiera servlets, filter, lyssnare och den typen av obligatoriska saker för att köra din webbapp. Den här filen är en del av standardservlet API.
Se även:
- Är det säkert att använda en statisk java.sql.Connection-instans i ett flertrådat system?
- Hur ska jag ansluta till JDBC-databas/datakälla i en servletbaserad applikation?
- Var måste jag placera JDBC-drivrutinen för Tomcats anslutning pool?
- DAO-handledning – grundläggande JDBC/DAO-handledning, riktad på Tomcat/JSP/Servlet