启动Tomcat输入地址后,出现以下错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /LoginTest/Login.jsp(11,0) The value for the useBean class attribute dbms.DBBean is invalid.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)我的数据库Bean如下:
package dbms;
/**
 * <p>数据库连接专用包 </p>
 * <p>Copyright: wxy Copyright (c) 2004</p>
 * <p>Company:juanjuan book shop online </p>
 * @by :wxy
 * @version 1.0
 */
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.derby.jdbc.EmbeddedDriver;public class DBBean {
  public String ID="Davie";
  public String PASSWORD="";
  public Connection conn;
  public Statement stmt;
//public ResultSet rs=null;
//public String sqlStr="";
  
  public DBBean(){
     try{
          Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
String url ="jdbc:derby:E:\\Program Files\\cloudscape\\database\\LoginTest";
conn = DriverManager.getConnection(url,ID,PASSWORD);
     } catch( Exception e ){
      e.printStackTrace();
     } 
  }
  public ResultSet executeQuery(String sql)
  {
ResultSet rs = null;
try
{
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}catch(Exception e){System.out.print("Query Error!!!!!!!!!");}
return rs;
  }
}Login.jsp如下:<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>登陆页面</title></head><jsp:useBean id="dbBean"class="dbms.DBBean" scope="session" >
<jsp:setProperty name="ID" property="*" />
<jsp:setProperty name="PASSWORD" property="*" />
</jsp:useBean><%
    String ID = request.getParameter("ID");
    String PASSWORD = request.getParameter("PASSWORD");
    
    ResultSet RS = dbBean.executeQuery("select * from Login where ID='"+ID+"' PASSWORD='"+PASSWORD+"'");
if( RS.next() )
    {
   String Apassword=RS.getString("PASSWORD");
   String Aid=RS.getString("ID");
   if( ID.equals(Aid) && PASSWORD.equals(Apassword) )
   {
%>
   <jsp:forward page="LoginSuccess.jsp" />
<%    
   }
   else
   {
%>
       <jsp:forward page="LoginFail.jsp" />
<%
   }
}
    else
   {
%>
   <jsp:forward page="LoginFail.jsp" />
<%
   }
   RS.close();
%><body>
</body>
</html>

解决方案 »

  1.   

    <jsp:setProperty name="ID" property="*" />这句错了
    里面的name属性是指你引用的bean对象,应该改成<jsp:setProperty name="dbBean" property="*" />然后下面那句<jsp:setProperty name="PASSWORD" property="*" />也不用了。然后你的bean也有问题,如果你要被bean的属性传值必须有一个getXXX()的方法
      

  2.   

    我觉得String url ="jdbc:derby:E:\\Program 有错,导致找不到数据库。<jsp:useBean id="dbBean"class="dbms.DBBean" scope="session" >
    <jsp:setProperty name="ID" property="*" />
    <jsp:setProperty name="PASSWORD" property="*" />
    </jsp:useBean>
    错误。好多错误啊。楼主要走的路还很长
      

  3.   

    楼主以下代码大有问题哟!
    <jsp:useBean id="dbBean"class="dbms.DBBean" scope="session" >
    <jsp:setProperty name="ID" property="*" />
    <jsp:setProperty name="PASSWORD" property="*" />
    </jsp:useBean>应该改成这样:
    <jsp:setProperty name = "dbBean" property = "ID" value = "*"/>
    <jsp:setProperty name = "dbBean" property = "PASSWORD" value = "*" />没有关系的!我想你是找久了没有看到注意到这个问题吧!我也有时候要出现这样的问题哈!我也是个新手,共同努力吧!加油哟!