第一个文件:package login;import java.sql.*;public class CheckBean {
private String message = null;
private String admin;
private String password;
private DB db; public CheckBean() {
db = new DB();
} public void setAdmin(String admin) {
this.admin = admin;
} public void setPassword(String password) {
this.password = password;
} public String checkIt() {
try {
String sql="select * from administrator where admin='"
+ this.admin + "'";
ResultSet rs = db.Query(sql);
while (rs.next()) {
String psw = rs.getString("password").trim();
if (psw.equals(this.password)) {
message = "right";
} else {
message = "error";
}
message = "no account";
}
} catch (SQLException e) {
System.out.println(e);
}
return message;
}
}
第二个文件:
package login;import java.sql.*;/**
 * 数据库连接类DB
 * 
 */
public class DB {
private java.sql.Connection conn = null;// 数据库连接
private java.sql.PreparedStatement stmt = null;// 数据库表达式
private java.sql.ResultSet rs = null;// 结果集 public DB() { // 建立与数据库的连接
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} try {
conn = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost:3306/new?useUnicode=true&characterEncodi"
+ "ng=GBK", "root", "admin");
} catch (SQLException e) {
e.printStackTrace();
}
} public void CloseStmt() { // 关闭数据库表达式
try {
stmt.close();
} catch (SQLException e) {
System.out.println(e);
}
} public void CloseConn() { // 关闭数据库连接
try {
conn.close();
} catch (SQLException e) {
System.out.println(e);
}
} public void Update(String sql) {
try {
stmt.executeUpdate(sql);
} catch (SQLException e) {
System.out.println(e);
}
}

public ResultSet Query(String sql){
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
System.out.println(e);
}
return rs;
}
}第三个文件jsp:<%@ page contentType="text/html;charset=gb2312"%>
<%
 String admin = request.getParameter("admin");
 String password = request.getParameter("password");
%>
<jsp:useBean id="checkBean" class="login.CheckBean"/>
<jsp:setProperty name="checkBean" property="admin" value="<%= admin %>"/>
<jsp:setProperty name="checkBean" property="password" value="<%= password %>"/>
<%
 String result = checkBean.checkIt();
 if(result.equals("right")){
  session.setAttribute("admin",admin);
  response.sendRedirect("main.jsp");
 }
 else
 { 
  %>
  <!-- <jsp:forward page="index.jsp">
   <jsp:param name="error" value="<%=result%>"/>
  </jsp:forward>  -->     
  <%
 }
%>运行道第三文件是就出错:
ype Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /check.jsp at line 107: <jsp:setProperty name="checkBean" property="admin" value="<%= admin %>"/>
8: <jsp:setProperty name="checkBean" property="password" value="<%= password %>"/>
9: <%
10:  String result = checkBean.checkIt();
11:  if(result.equals("right")){
12:   session.setAttribute("admin",admin);
13:   response.sendRedirect("main.jsp");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
login.DB.Query(DB.java:56)
login.CheckBean.checkIt(CheckBean.java:27)
org.apache.jsp.check_jsp._jspService(check_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
--------------------------------------------------------------------------------

解决方案 »

  1.   

    问题出现在第三个文件jsp的这一句:String   result   =   checkBean.checkIt(); 我现在是不知道他有没有第一个文件查数据库语句:ResultSet   rs   =   db.Query(sql); 请帮帮忙看看!!!
      

  2.   

    public   DB()   {   //   建立与数据库的连接 
    try   { 
    Class.forName("com.mysql.jdbc.Driver"); 
    }   catch   (ClassNotFoundException   e)   { 
    e.printStackTrace(); 
    } try   { 
    conn   =   java.sql.DriverManager.getConnection( 
    "jdbc:mysql://localhost:3306/new?useUnicode=true&characterEncodi" 
    +   "ng=GBK",   "root",   "admin"); 
    stmt = conn.createStatement();          加这一句
    }   catch   (SQLException   e)   { 
    e.printStackTrace(); 

    } stmt为空,在构造函数里你没在创建它
      

  3.   

    to:AWUSOFT 
    加上那一句后出错,提示:Type mismatch: cannot convert from Statement to PreparedStatement
      

  4.   

    private   java.sql.PreparedStatement   stmt   =   null;//   数据库表达式 改成private   java.sql.Statement   stmt   =   null;//   数据库表达式