Jsp连接Mysql数据库:利用Servlet监听器

本例程所使用的运行环境及资源:

1.Tomcat5.5                  

2.Mysql4.1

3. mysqljdbc驱动:3.1.13

(以上程序可以直接到相关官方网站下载到)

step1:首先创建一个监听器servlet,这个监听器用来初始化共享资源,本例中主要用来在应用中创建数据源,把这个类置于WEB-INF/classes/kinglong/jmediasoft/servlets/目录下,代码如下:

/***//**

*@(#)ResourceManagerListener.java

*

*资源初始化监听器

*

package kinglong.jmediasoft.servlets;

import javax.servlet.*;

import javax.servlet.http.*;

import com.mysql.jdbc.jdbc2.optional.*;

public class ResourceManagerListener implements ServletContextListener {

private DataSourceds=null;

public void contextInitialized(ServletContextEventsce) {

ServletContextapplication=sce.getServletContext();

Stringjdbcurl=application.getInitParameter("jdbcURL");

Stringuser=application.getInitParameter("user");

Stringpassword=application.getInitParameter("password");

try {

ds=new MysqlConnectionPoolDataSource();

ds.setUrl(jdbcurl);

ds.setUser(user);

ds.setPassword(password);

}catch(Exceptione) {

application.log("无法创建数据源:"+e.getMessage());

return; 

} 

application.setAttribute("dataSource",ds);//将数据源变量置于应用作用域中

}

public void contextDestroyed(ServletContextEventsce) {

ServletContextapplication=sce.getServletContext();

application.removeAttribute("dataSource");

ds=null;

}

}

step2:配置web.xml相关代码,代码如下:

<context-param>

<param-name>jdbcURL 

<param-value>jdbc:mysql://localhost:3306/comic 

<context-param>

<param-name>user 

<param-value>root 

<context-param>

<param-name>password 

<param-value>root 

<listener>

<listener-class>

kinglong.jmediasoft.servlets.ResourceManagerListener

step3:建立测试页面,测试页面代码如下:

<sql:query var="comicinfo" dataSource="${dataSource}" 

sql="SELECT*FROMcomicinfo" /> 

<html>

<head>

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

<title>数据库测试页面 

<body>

<table>

<c:forEach items="${comicinfo.rows}" var="row">

<c:forEach items="${row}" var="column">

<tr>

<td align="right"><b>${fn:escapeXml(column.key)}: 

<td align="left">${fn:escapeXml(column.value)}

step4:重新启动Tomcat应用,用http://localhost:8080/test/test.jsp的链接来执行此页面,我的输出如下。这是我的comicinfo表中的唯一一条记录。黑体是表的字段,后面是对应的字段值。

///来自互联网///

相关推荐