各位,我有一段代码总是报空指针异常,求指点
package liuyanban;
//用来保存留言信息
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.omg.CORBA.Request;
public class AddMessageServlet extends HttpServlet {
Connection con ;
//PreparedStatement stmt;
// 数据库连接方法
public AddMessageServlet() {
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=liuyan";
String userName = "sa";
String password = "123456";
con=null;
Statement stmt=null;
String sql = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");// 加载数据库驱动
con = DriverManager.getConnection(url, userName, password);
} catch (ClassNotFoundException e) {
System.out.println("加载驱动器类时出现异常");
} catch (Exception e) {
System.out.println("出现SQLException");
}
}
// 可以用 doGet方法处理数据库增、删、改、查等
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");// 设置响应编码方式
request.setCharacterEncoding("utf-8");// 设置响应编码方式
String name = request.getParameter("name");// 从前台页面获取信息
String title = request.getParameter("title");
String email = request.getParameter("email");
String content = request.getParameter("content");
if (name == null) {
name = "";
}
if (email == null) {
email = "";
}
if (title == null) {
title = "";
}
if (content == null) {
content = "";
}
try {
PreparedStatement ps = con.prepareStatement("insert into message values(?,?,?,?,?)");// 向表中插入从页面获取的数据
ps.setString(1, title);
ps.setString(2, name);
ps.setDate(3, new java.sql.Date(new java.util.Date().getTime()));
if (email.length() == 0) {
ps.setString(5, null);
} else {
ps.setString(4, content);
ps.setString(5, email);
}
try {
ps.executeUpdate();
} catch (Exception e) {
}
// 关闭数据库连接
// con.close;
RequestDispatcher dispatcher = request
.getRequestDispatcher("/ViewMessageServlet");// 可以把当前request传到资源
dispatcher.forward(request, response);// 用来传到ViewMessageServlet获得数据,映射地址在XML中
} catch (SQLException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}