java.lang.NullPointerException问题,请指教
情况描述如下:
编译正常,运行抛出空指针异常。
总共三个文件,一个CreateDBServlet.java文件,一个web.xml文件,一个自己配的ch08.xml文件。我把数据库驱动包已经放到相应目录下了,具体代码如下:
CreateDBServlet.java
-------------------------------------------------------------------------------------------------
package org.sunxin.lesson.jsp.bookstore;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class CreateDBServlet extends HttpServlet{
private String url1;
private String user;
private String password;
public void init() throws ServletException{
String driverClass = getInitParameter("driverClass");
url1 = getInitParameter("url1");
user = getInitParameter("user");
password = getInitParameter("password");
try{
Class.forName(driverClass); //加载并注册驱动程序
}
catch(ClassNotFoundException ce){
throw new UnavailableException("加载数据库驱动失败");//如果没找到驱动程序,抛出不可异常
}
}
public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException , IOException{
Connection conn = null;
Statement stmt = null;
try{
conn = DriverManager.getConnection(url1,user,password);
stmt = conn.createStatement();
stmt.executeUpdate("create database bookstore");
stmt.executeUpdate("use bookstore");
stmt.executeUpdate("create table bookinfo(id INT not null primary key,title VARCHAR(50) not null ,author VARCHAR(50) not null,bookconcern VARCHAR(100) not null,publish_date DATE not null,price FLOAT(4,2) not null,amount SMALLINT,remark VARCHAR(200))ENGINE = InnoDB");
stmt.addBatch("insert into bookinfo values(1,'Java从入门到精通','张三','张三出版社','2004-6-1' ,34.00,35,null)");
stmt.addBatch("insert into bookinfo values(2,'JSP深入编程','李四','李四出版社','2004-10-1' ,56.00,20,null)");
stmt.addBatch("insert into bookinfo values(3,'J2EE高级编程','王五','王五出版社','2005-3-1',78.00,10,null)");
stmt.executeBatch();
PrintWriter out = resp.getWriter();
out.println("success!");
out.close();
}
catch(SQLException se){
se.printStackTrace();
}
finally{
if(stmt!=null){
try{
stmt.close();
}
catch(SQLException se){
se.printStackTrace();
}
stmt = null;
}
if(conn!=null){
try{
conn.close();
}
catch(SQLException se){
se.printStackTrace();
}
conn = null;
}
}
}
}
-----------------------------------------------------------------------------------------------------------------
web.xml代码如下:
-----------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="gbk"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>CreateDBServlet</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.CreateDBServlet</servlet-class>
<init-param>
<param-name>dirverClass</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mysql</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>root</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CreateDBServlet</servlet-name>
<url-pattern>/createdb</url-pattern>
</servlet-mapping>
</web-app>
--------------------------------------------------------------------------------------------------------
ch08.xml代码如下:
--------------------------------------------------------------------------------------------------------
<Context path="/ch08" docBase="E:\JSPLesson\ch08" reloadable="true" />