jsp连接数据库空指针异常
课上老师写的程序,在自己电脑上就出现空指针异常,同学的都可以运行,查了一下午百度,方法都试了试,但还是空指针异常,请大佬帮小白看一下 十分感谢
DBConn。java
package conn;
import java.sql.*;
public class DBConn {
private String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String URL="jdbc:sqlserver://localhost:1434;databasename=student";
private String USERNAME="sa";
private String PWD="sa";
private Connection conn=null;
private PreparedStatement pstat=null;
private Statement stat=null;
private ResultSet rs=null;
public Connection getDBconn(){
try {
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USERNAME,PWD);
}catch(ClassNotFoundException e){
System.out.println("1");
}catch (SQLException e) {
System.out.println("2");
}return conn;
}
public void close(Connection conn,Statement stat,ResultSet rs){
try{
if(rs!=null){
rs.close();
}
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException e){
}
}
public void close(Connection conn,PreparedStatement pstat,ResultSet rs){
try{
if(rs!=null){
rs.close();
}
if(pstat!=null){
pstat.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException e){
}
}
}
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>登陆</title></head>
<body>
<form action="testlogin.jsp" name="mainform" method="post">
用户名:<input type="text" name="username" ><br>
密码:<input type="password" name="pwd"><br>
<input type="submit" name="submit" value="提交">
<input type="reset" name="reset" value="重置"><br>
<a href="regist.jsp">注册页面</a>
</form>
</body>
</html>
testlogin.jsp
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"%>
<%@ page import="conn.DBConn" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'testlogin.jsp' starting page</title>
</head>
<body>
<%
String username=request.getParameter("username");
String pwd=request.getParameter("pwd");
Connection conn=null;
Statement stat=null;
PreparedStatement pstat=null;
ResultSet rs=null;
DBConn db=new DBConn();
conn=db.getDBconn();
String sql="select * from login where username=? and pwd=?";
pstat=conn.prepareStatement(sql);
pstat.setString(1,username);
System.out.println(pstat);
System.out.println(conn);
pstat.setString(2,pwd);
rs=pstat.executeQuery();
/* stat=conn.createStatement();
String sql="select * from t_user where username='"+username+"' and pwd='"+pwd+"'";
rs=stat.executeQuery(sql);*/
if(rs.next()){
response.sendRedirect("success.jsp");
session.setAttribute("username",username);
session.setAttribute("pwd",pwd);
}else{
response.sendRedirect("index.jsp");
out.println("用户名或密码输入错误!");
}
db.close(conn,pstat,rs);
%>
</body>
</html>
异常
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
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
org.apache.jsp.testlogin_jsp._jspService(testlogin_jsp.java:77)
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.
数据库的账号和密码都是sa,希望有大神可以帮忙看一下