启动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>
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>
里面的name属性是指你引用的bean对象,应该改成<jsp:setProperty name="dbBean" property="*" />然后下面那句<jsp:setProperty name="PASSWORD" property="*" />也不用了。然后你的bean也有问题,如果你要被bean的属性传值必须有一个getXXX()的方法
<jsp:setProperty name="ID" property="*" />
<jsp:setProperty name="PASSWORD" property="*" />
</jsp:useBean>
错误。好多错误啊。楼主要走的路还很长
<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 = "*" />没有关系的!我想你是找久了没有看到注意到这个问题吧!我也有时候要出现这样的问题哈!我也是个新手,共同努力吧!加油哟!