1.配置在context.xml文件中,而不是server.xml
在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。
我们当然推荐把应用需要的JNDI资源配置在context.xml文件中,而不是server.xml文件中。
2.配置方法
我们只需要在我们的WebRoot目录下,新建一个META-INF的目录(假如不存在),在该目录下创建一个context.xml文件,并且在context.xml文件当添加以下的配置信息:
程序代码
- <Context>
- <Resource name="jdbc/myproject" auth="Container" type="javax.sql.DataSource"
- maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
- username="sa" password="password" driverClassName=""
- url=""/>
- </Context>
在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。我们可以在一个context元素中定义多个资源,格式类似。 连接数据库时是根据资源名称区分的。
- <resource-ref>
- <description>DB Connection</description>
- <res-ref-name>jdbc/myproject</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
3.action中java代码链接数据库
//链接数据库
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/myproject");
Connection conn = ds.getConnection();