JB内容:
setMemberID()— 对BuyerBean中的memberID属性进行赋值;
setPwd()—对BuyerBean中的 pwd 属性进行赋值;
getLogontimes()— 获取该会员登录的次数。------只有此步连接数据库!!JSP内容:
<jsp:useBean class="zio.BuyerBean" id="buyer" scope="page"></jsp:useBean>
......中间省略.....
<% String memberID = request.getParameter("ID");----成功
String pwd = request.getParameter("pwd");--------成功
buyer.setMemberID("memberID");-------------------成功
buyer.setPwd("123");-----------------------------成功
int logonTimes = buyer.getLogontimes();%>--------错误!!问题是在JB中,用main方法测试一切正常,
但通过jsp访问JB就无法连接数据库。请问如何解决?ps:数据库为Access,测试时只开了tomcat,是不是还需要别的配置才能访问数据库?
setMemberID()— 对BuyerBean中的memberID属性进行赋值;
setPwd()—对BuyerBean中的 pwd 属性进行赋值;
getLogontimes()— 获取该会员登录的次数。------只有此步连接数据库!!JSP内容:
<jsp:useBean class="zio.BuyerBean" id="buyer" scope="page"></jsp:useBean>
......中间省略.....
<% String memberID = request.getParameter("ID");----成功
String pwd = request.getParameter("pwd");--------成功
buyer.setMemberID("memberID");-------------------成功
buyer.setPwd("123");-----------------------------成功
int logonTimes = buyer.getLogontimes();%>--------错误!!问题是在JB中,用main方法测试一切正常,
但通过jsp访问JB就无法连接数据库。请问如何解决?ps:数据库为Access,测试时只开了tomcat,是不是还需要别的配置才能访问数据库?
但就是用同样的数据在JSP下访问数据库和在JB内用main访问数据库结果不一样。比如JB内结果是 存在用户
但JSP下访问结果是 没有
*本Bean中有两个set方法和两个get 方法:
*setMemberID()— 对BuyerBean中的memberID属性进行赋值;
*setPwd()—对BuyerBean中的 pwd 属性进行赋值;
*getLogontimes()— 获取该会员登录的次数。
*getMenberName()获得该会员的真实姓名,用于显示欢迎信息。
*main()方法用于将BEAN作为一个 Application进行测试时使用,正式发布时可以删除。
**/package zio;import java.sql.*;public class BuyerBean {
private String memberID = null ; //会员ID
private String memberName = null; //会员姓名
private String pwd = null; //密码
private int logontimes = -1; //登录的次数
private static String strDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; //JDBC驱动
private static String strDBUrl = "jdbc:odbc:My_Book"; //数据源 ,
private Connection conn =null; //连接
private ResultSet rs = null; //结果集
// 加载JDBC-ODBC驱动
public BuyerBean(){ try {
Class.forName(strDBDriver );
}
//捕获异常
catch(java.lang.ClassNotFoundException e){
System.err.println("BuyerBean():" + e.getMessage());
} }
// 获得登录次数,登录的会员的名字也在该方法调用时获得
public int getLogontimes(){
String strSQL=null;
try{
conn = DriverManager.getConnection(strDBUrl);
// System.out.println("connection ok");
Statement stmt = conn.createStatement();
// System.out.println("statement ok");
strSQL= "SELECT logon,name FROM buyinfo WHERE ID = '"+
memberID + "' AND pwd = '" + pwd + "'";
rs = stmt.executeQuery(strSQL);
// System.out.println(strSQL+"ok");
while (rs.next()){
// 登录的次数
logontimes=rs.getInt("logon");
//会员姓名
memberName=rs.getString("name");
}
rs.close();
//如果是合法会员则将其登录次数加1
if (logontimes !=-1) {
strSQL = "UPDATE buyinfo SET " +
"logon=logon +1 WHERE ID = '"+ memberID + "'";
stmt.executeUpdate(strSQL);
// System.out.println("UP OK"+strSQL);
}
stmt.close();
conn.close();
}
//捕获异常
catch(SQLException e){
System.err.println("BuyerBean.getLogontimes()2:" + e.getMessage());
}
return logontimes ;
}
public void setMemberID(String MenID){
this.memberID=MenID;
}
public void setPwd(String PWD){
this.pwd=PWD; }
public String getMenberName(){
return memberName;
}
public String getID(){
return memberID;
}
public String getpwd(){
return pwd;
}
public static void main(String arg[]){
BuyerBean BB=new BuyerBean();
BB.setMemberID("wow");
BB.setPwd("123");
System.out.println(BB.getLogontimes());
System.out.println(BB.getMenberName());
}
}有点长
其中有很多没有用的函数,是我自己测试时用的
除了main里的System.out.println,其他函数中的System.out.println都不执行
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN"><%@ page language="java" contentType="text/html;charset=GB2312"%><jsp:useBean class="zio.BuyerBean" id="buyer" scope="page"></jsp:useBean>
<HTML>
<HEAD>
<META name="CHECKLOGON" >
<TITLE>
ZIO ON LINE BOOK STORE - MEMBER LOGIN
</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1 align=”"center">ZIO 网上书店</H1>
<%
String memberID = request.getParameter("ID");
String pwd = request.getParameter("pwd");
buyer.setMemberID("wow");
buyer.setPwd("123");
%>
<% int logonTimes = buyer.getLogontimes();%>
<%String mn=buyer.getMenberName();%>
<%=memberID%>
<%=pwd%>
<%=buyer.getID() %>
<%=buyer.getpwd() %>
<%=logonTimes%>
<%=mn%>
</BODY>
</HTML>
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String memberName = null;
int logontimes = -1;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e){
System.err.println(e.getMessage());
} ;
try{
Connection conn = DriverManager.getConnection("jdbc:odbc:My_Book");
Statement stmt = conn.createStatement();
String strSQL= "SELECT logon,name FROM buyinfo WHERE ID = 'wow' AND pwd = '123'";
rs = stmt.executeQuery(strSQL);
while (rs.next()){
logontimes=rs.getInt("logon");
memberName=rs.getString("name");
}
stmt.close();
conn.close();
}
//捕获异常
catch(SQLException e){
System.err.println( e.getMessage());
}
%>
Logon:
<%=logontimes%>
Name:
<%=memberName %></body>
</html>输出结果应该是Logon: 11 Name: wow
但实际上输出却是 Logon: -1 Name: null 请问这是什么地方出的问题?
我的环境是:Tomcat6.0 数据库是Access