看了好多文章还是不太了解,终于等自己写了一个,才稍有所体会,按我现在的理解,姑且把它当成一个类或组件吧~下面是JavaBean的创建和调用。
1。JavaBean的创建:
右击src可以选择“新建”-包(package),然后在该包下新建类,或者直接新建类(class)。
然后在此处编写bean程序(.java文件),并编译。注意,编译生成的.class文件才是我们需要的。Eclipse会将此.java保存在workspace/MyEclipse 7.0/test/src/myjsp/目录下,而.class保存在Workspaces/MyEclipse 7.0/test/WebRoot/WEB-INF/classes/myjsp/目录下。
2。使用方式:
在<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*" errorPage="" %> 之后加入:
<jsp:useBean id="cnct" scope="page" class="myjsp.ConnectJSP">
<jsp:setProperty name="cnct" property="*"/>
</jsp:useBean>
cnct相当于bean类的对象,可直接调用其函数。
下面是我的第一个JavaBean~其中,ConnectJSP.java存放在.../test/src/myjsp/下,ConnectJSP.class存放在.../WEB-INF/classes/myjsp/下:
——————————————————————ConnectJSP.java—————————————————————————
//目的是与数据库进行连接。
package myjsp;
import java.sql.DriverManager;//类用于处理驱动程序的调入并且对新的数据库连接提供支持。
import java.sql.Connection;//指应用程序与特定数据库的连接。
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;//用于一般sql语句的执行(可以是查询、更新甚至可以创建数据库的执行过程)
import java.sql.ResultSet;//查询所返回的结果保存在此对象中,用它可以浏览和存取数据库内的记录。
public class ConnectJSP
{
public ResultSet rs;
private Statement stmt;
private Connection con;
public void connectdata() throws SQLException, ClassNotFoundException
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
con = DriverManager.getConnection("jdbc:odbc:jspdb"); //建立数据库链接,jspdb为ODBC数据源名称
//建立Statement对象
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("select * from PrintA"); //建立ResultSet(结果集)对象,并执行SQL语句
}
public void closeall() throws SQLException //关闭
{
rs.close();
stmt.close();
con.close();
}
}
——————————————————————————————————————————————————
下面调用JavaBean组件:
—————————————————————jspdata.jsp———————————————————————
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*" errorPage="" %>
<jsp:useBean id="cnct" scope="page" class="myjsp.ConnectJSP">
<jsp:setProperty name="cnct" property="*"/>
</jsp:useBean>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JSP连接Access数据库</title>
//打开Excel查看数据...但未能实现...
<script type="text/javascript">
function validate()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var Lenr = PrintA.rows.length;
for (i=0;i<Lenr;i++)
{
var Lenc = PrintA.rows(i).cells.length;
for (j=0;j<Lenc;j++)
{
oSheet.Cells(i+1,j+1).value = PrintA.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
}
</script>
<style type="text/css">
<!--
.style1 {
font-size: 20px;
font-weight: bold;
}
-->
</style>
</head><body>
<div align="center" class="style1">JSP连接Access数据库 - JavaBean</div>
<br>
<hr>
<br>
<%
cnct.connectdata(); //调用连接函数
%>
</p>
<p align="center">PrintA数据表中记录如下</p> //此处页面表头固定. ps:刚学,还不太懂~所以只能这样~
<table id="PrintA" width="640" border="1" align="center"
bordercolor="#7188e0" >
<tr bgcolor="d1d1ff">
<th width="49">编号</th>
<th width="90">姓名</th>
<th width="126">E-mail</th>
<th width="221">网站</th>
<th width="80">QQ</th>
</tr>
<%
while(cnct.rs.next()) //循环,逐行获取记录
{
%>
<tr bgcolor="#f8f8f8">
<th><%= cnct.rs.getString(1) %></th>
<th><%= cnct.rs.getString(2) %></th>
<th><%= cnct.rs.getString(3) %></th>
<th bgcolor="#f6f6f8"><a href="http://<%=cnct.rs.getString(4)%>/" target="_blank"><%= cnct.rs.getString(4) %></a></th>
<th><%= cnct.rs.getString(5) %></th>
</tr>
<%
}
cnct.closeall(); //关闭函数
%>
</table>
<p align="center"><br>
如果您能看到表格中的数据,说明连接数据库成功!
</p>
<form action="excelservlet">
<p align="center">
<input type="button" name="submit" onClick="validate()" value="全部导出">//调用validate
</p>
<p align="center"><a href="javascript:alert(new Date())" onFocus="red">显示时间</a>
</p>
</form>
</body>
</html>
————————————————————————————————————————————————————————
这样,环境配置正确的话,输入"http://localhost:8080/test/jspdata.jsp"会看到数据库连接成功的页面。(但其中的“导出数据”功能没有实现,点了按钮没反应……困扰我很久了。。。)