第一个文件: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.
--------------------------------------------------------------------------------
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.
--------------------------------------------------------------------------------
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为空,在构造函数里你没在创建它
加上那一句后出错,提示:Type mismatch: cannot convert from Statement to PreparedStatement