最近在做一个登录页面,与oracle相连检测登录信息是否正确,写好代码后,我把login.jsp和check_login.jsp放到了C:\Program Files\Tomcat 5.5\webapps\sunshine目录下(sunshine是我自己建的目录),把sqlBean.java编译后的.class文件放到了C:\Program Files\Tomcat 5.5\webapps\sunshine\WEB-INF\sun目录下(sqlBean.java被封装到了sun包中),可是用浏览器浏览时出现了如下错误:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /check_login.jsp(10,0) The value for the useBean class attribute sun.sqlBean is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1223)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3284)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs
我弄了好久,可还是不知道错在哪了,哪位高人能指点一下,不胜感激啊!!!!我的代码如下:login.jsp:<%@ page contentType="text/html;charset=gb2312"%>
<html>
<title>login.jsp</title>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>
</head>
<body>志愿者ID<input type=text name=userid>
<br><br>
密&nbsp;&nbsp;&nbsp;&nbsp;码<input type=password name=password>
<br><br><input type=submit value="登录" onclick="location.href='check_login.jsp'"/><input type=submit value="找回密码" onclick="location.href='register.jsp'"/>
<input type=submit value="注册" onclick="location.href='findpw.jsp'"/></body>
</html>
登录检测页面:
check_login.jsp:<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>
<%@ page import="sun.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>
<title>登录检验</title>
</head>
<body><jsp:useBean id="db" scope="page" class="sun.sqlBean"/><% 
String sql="";
String id=request.getParameter("userid");
String password=request.getParameter("password");
ResultSet rs=null;
sql="select password from ssunshine where id='"+id+"' ";
rs.db.executeQuery(sql);
if(rs.next())
{
    password=rs.getString("password");
    if(log.getPassword().equals(password))
    {
    session.setAttribute("userid",userid);
    session.setAttribute("password",password);
    respond.sendRedirect("home.jsp");
    }
}
else
{
String message="登录失败,用户名或密码有误!!";response.sendRedirect("login.jsp");
}
%>
</body>
</html>
与oracle连接的类
sqlBean.java:package sun;
import java.io.*;
import java.sql.*;
public class sqlBean
{
    public Connection conn=null;
    public ResultSet rs=null;
    private String DatabaseDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    private String DatabaseConnStr="jdbc:odbc:sunshine";
    public void setDatabaseDriver(String Driver){ this.DatabaseDriver=Driver;}
    public String getDatabaseDriver(){ return(this.DatabaseDriver);}
    public void setDatabaseConnStr(String ConnStr){ this.DatabaseConnStr=ConnStr; }
    public String getDatabaseConnStr(){ return (this.DatabaseConnStr); }
    public sqlBean()
    {
        try{ Class.forName(DatabaseDriver); }
        catch(java.lang.ClassNotFoundException e)
        { 
            System.err.println("加载驱动器有误:"+e.getMessage());
            System.out.print("执行插入有误:"+e.getMessage());
        }
    }
    public String getString(String name) throws SQLException
    {
        if(rs==null) throw new SQLException("ResultSet is null");
        return String.valueOf(rs.getString(name));
    }
    public void executeInsert(String sql)
    {
        try
        {
            conn=DriverManager.getConnection("jdbc:odbc:sunshine","system","system");
            Statement stmt=conn.createStatement();
            stmt.executeUpdate(sql);
        }
        catch(SQLException ex)
        {
            System.err.println("加载驱动器有误:"+ex.getMessage());
            System.out.print("执行插入有误:"+ex.getMessage());
        }
    }
    public ResultSet executeQuery(String sql)
    {
        rs=null;
        try
        {
             conn=DriverManager.getConnection("jdbc:odbc:sunshine","system","system");
             Statement stmt=conn.createStatement();
            stmt.executeQuery(sql);
        }
        catch(SQLException ex)
        {
            System.err.println("加载驱动器有误:"+ex.getMessage());
            System.out.print("执行插入有误:"+ex.getMessage());
        } 
        return rs;
    }
    public void executeDelete(String sql)
    {
        try
        {
            conn=DriverManager.getConnection("jdbc:odbc:sunshine","system","system");
            Statement stmt=conn.createStatement();
            stmt.executeUpdate(sql);
        }
        catch(SQLException ex)
        {
            System.err.println("加载驱动器有误:"+ex.getMessage());
            System.out.print("执行插入有误:"+ex.getMessage());
        }
    }
    public void CloseDataBase()
    {
        try {  conn.close(); }
        catch(Exception end)
        {
            System.err.println("执行关闭Connection对象有误:"+end.getMessage());
            System.out.print("执行关闭Connection对象有误:"+end.getMessage());
        }
    }
}

解决方案 »

  1.   

    楼主发错版了,去java版 web开发里面去问吧。
    ps:你这段太乱了,web不像web的。都无从下手。看错误信息似乎是类无效。应该是你的sqlBean用到了什么包,而这个类包不在你的classpath里面。
    你扔上来的代码里面有几个问题给你指出下,不过跟你报的错无关,纯语法错误或者一些优化代码的建议。。1.rs.db.executeQuery(sql);
     应改为:rs=db.executeQuery(sql);
    2.if(log.getPassword().equals(password))  
    这个log在哪里定义的?
    3.session.setAttribute("userid",userid);  
    这个userid在哪里定义的?
    4.String message="登录失败,用户名或密码有误!!";  
    定义了message下面没用到,不用定义。
    5.respond.sendRedirect("home.jsp"); 
    单词拼错,应为response
    6.既然引入得时候用了<%@ page import="sun.*"%> ,那么下面<jsp:useBean id="db" scope="page" class="sun.sqlBean"/> 除非引入得包里存在重名类,否则直接用类名就可以了,即:
    <jsp:useBean id="db" scope="page" class="sqlBean"/>
    7.java编码,类名开头第一个字母要大写。方法名第一个字母要小写。
    8.开发web项目,不是说,自己在tomcat里面建些目录,扔些文件就可以的。最好还是用IDE的打包工具,export成war文件,然后再把war放到tomcat的webapps下面,tomcat会自己给你解压的。