求求您了, CDSN 里的好人,帮帮我吧. 我只有10分了. 求求求求求求求求求您了...............

coolcoolpig 2004-11-13 08:56:41
这是一个关于 jsp 与 javabean 的小问题,可我搞不定. 我都快死了.

目录:

webapps\bookapp\web-info\classes\ConnectionPool.class
这是一个javabean.

webapps\bookapp\login.jsp
这是一个登陆页面.


//*********************** javabean 如下 ********************************
import java.lang.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;

public class ConnectionPool
{
private Vector freeConnections = null;
private Hashtable nowConnections = null;
private String driverName = "";
private String jdbcURL = "";
private int maxConnections = 3;

public ConnectionPool ()
{
}

public void openPool () throws SQLException
{
try
{
nowConnections = new Hashtable (maxConnections);
freeConnections = new Vector (maxConnections);
Class.forName (driverName);
for (int i = 0; i < maxConnections; i ++)
freeConnections.addElement (DriverManager.getConnection (jdbcURL));
}
catch (Exception ex)
{
nowConnections = null;
freeConnections = null;
throw new SQLException (ex.toString ());
}
}

public void closePool () throws SQLException
{
if (nowConnections != null)
{
for (Enumeration e = nowConnections.elements (); e.hasMoreElements (); )
((Connection) e.nextElement ()).close ();
nowConnections.clear ();
nowConnections = null;
}

if (freeConnections != null)
{
for (Enumeration e = freeConnections.elements (); e.hasMoreElements (); )
((Connection) e.nextElement ()).close ();
freeConnections.removeAllElements ();
freeConnections = null;
}
}

public Connection getConnection () throws SQLException
{
if (freeConnections == null)
throw new SQLException ("ConnectionPool还没有建立!");
if (freeConnections.size () == 0)
throw new SQLException ("没有空闲的连接,请稍后再请求!");

Connection conn = (Connection) freeConnections.firstElement ();
freeConnections.removeElement (conn);
nowConnections.put (Thread.currentThread (), conn);

return conn;
}

public void returnConnection () throws SQLException
{
Connection conn = (Connection) nowConnections.remove (Thread.currentThread ());
freeConnections.addElement (conn);
}

public void setPoolSwitch (String on_off) throws ServletException
{
try
{
if (on_off.equalsIgnoreCase ("ON"))
openPool ();
if (on_off.equalsIgnoreCase ("OFF"))
closePool ();
}
catch (SQLException ex)
{
throw new ServletException (ex.toString ());
}
}

public void setMaxConnections (int maxConnections)
{
this.maxConnections = maxConnections;
}

public void setDriverName (String driverName)
{
this.driverName = driverName;
}

public void setJdbcURL (String jdbcURL)
{
this.jdbcURL = jdbcURL;
}
}
//********************* javabean 结束 *******************************


//********************** login.jsp 如下 ******************************
<%@ page
language = "java"
errorPage = "Error.jsp"
contentType = "text/html; charset=gb2312"
%>

<jsp:useBean id="connectionPool" scope="application" class="ConnectionPool" >
<jsp:setProperty name="connectionPool" property="driverName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
<jsp:setProperty name="connectionPool" property="jdbcURL" value="jdbc:odbc:BooksDB" />
<jsp:setProperty name="connectionPool" property="poolSwitch" value="on" />
</jsp:useBean>

<%
if (!session.isNew ())
session.removeAttribute ("password");
%>

<script language="javascript">
<!--
function loginFormSubmit (url)
{
document.loginForm.action = url;
document.loginForm.submit ();
}
//-->
</script>

<html>
<head>
<title>登录网上购书系统</title>
</head>
<body bgcolor="#CCCCCC">

<form method="post" name="loginForm">
<center>
<table width="20" border="1" cellpadding="5">
<tr>
<td nowrap><font size="5"><b>登录网上购书系统</b></font></td>
</tr>
</table>
<p> </p>
<p>
<font>第一次购书请先使用"增加新用户"输入新用户数据!</font>
</p>
<table width="70" border="0">
<tr>
<td nowrap>
<font>用户电话/管理员密码:
<input type="password" name="password" maxlength="13" size="20">
</font>
</td>
</tr>
</table>
<p> </p>
<p>
<input type="button" value="用户注册" onclick="loginFormSubmit('index.jsp')">
<input type="button" value="增加新用户" onclick="loginFormSubmit('NewUserData.jsp')">
</p>
</center>
</form>

</body>
</html>
//********************* login.jsp 结束 ******************************


//******************** web.xml 如下 ******************************
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
<display-name>Welcome to BookShop</display-name>
<description>Welcome to BookShop</description>


</web-app>
//******************** web.xml 结束 ********************************

在浏览器里输入:
http://localhost:8080/bookapp/login.jsp 出现如下错误:

//***********************************************************
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 7 in the jsp file: /login.jsp

Generated servlet error:
[javac] Compiling 1 source file

D:\TOMCAT5\work\Catalina\localhost\bookapp\org\apache\jsp\login_jsp.java:44: cannot resolve symbol
symbol : class ConnectionPool
location: class org.apache.jsp.login_jsp
ConnectionPool connectionPool = null;
^



An error occurred at line: 7 in the jsp file: /login.jsp

Generated servlet error:
D:\TOMCAT5\work\Catalina\localhost\bookapp\org\apache\jsp\login_jsp.java:46: cannot resolve symbol
symbol : class ConnectionPool
location: class org.apache.jsp.login_jsp
connectionPool = (ConnectionPool) _jspx_page_context.getAttribute("connectionPool", PageContext.APPLICATION_SCOPE);
^



An error occurred at line: 7 in the jsp file: /login.jsp

Generated servlet error:
D:\TOMCAT5\work\Catalina\localhost\bookapp\org\apache\jsp\login_jsp.java:48: cannot resolve symbol
symbol : class ConnectionPool
location: class org.apache.jsp.login_jsp
connectionPool = new ConnectionPool();
^
3 errors


org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:127)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:553)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
***************************************************************************

您可以告诉我吗,谢谢,好多天没有进步了,因为卡在这里.
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolcoolpig 2004-11-15
  • 打赏
  • 举报
回复


为什么啊,来个人说说啊............................................................................................................................................................
coolcoolpig 2004-11-14
  • 打赏
  • 举报
回复


我试了,果真是这样,真是郁闷啊,为什么会这样呢.

直接放在 classes 下为什么不行,干嘛非要自己再建个子包呢 ?????????????
swsjk 2004-11-13
  • 打赏
  • 举报
回复
没看你代码的具体。太多了。:)

但是fw21cn说得对。

不要直接把ConnectionPool 直接放在 web-inf/classes下,在classes里面再加一个文件夹,如web-inf\classes\test\,然后把ConnectionPool放在web-inf\classes\test\下面,但是你的ConnectionPool原文件要改一下了,在前面加上package test;
coolcoolpig 2004-11-13
  • 打赏
  • 举报
回复
包??

ConnectionPool 是直接放在 web-inf/classes下的啊, 应该加什么包名啊????
fw21cn 2004-11-13
  • 打赏
  • 举报
回复
<jsp:useBean id="connectionPool" scope="application" class="web-info.classes.ConnectionPool" >
你的ConnectionPool类前应该有所在包的包名.
zhuyupu2004 2004-11-13
  • 打赏
  • 举报
回复
帮顶

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧