javabean
DBUtil.java
package com.jcsc.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class DBUtil { private String driver = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/jcsc";
private String user = "root";
private String password = "password";

public Connection getConnection() throws ClassNotFoundException,
SQLException {
Connection conn = null;

Class.forName(driver);
conn = DriverManager.getConnection(url,user,password);
return conn;
}

public PreparedStatement chooseSelect(String sql) throws Exception{
Connection conn = null;
PreparedStatement pst = null;

try {
conn = getConnection();
pst = conn.prepareStatement(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return pst;

}
}LoginServlet.java
package servlets;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.jcsc.util.DBUtil;public class LoginServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String pwd = request.getParameter("password");
String rememberMe = request.getParameter("remember");
String sql = "select * from login where name=? and pwd=?";
PreparedStatement pst = null;
ResultSet rs = null;
DBUtil db = new DBUtil();
// if (rememberMe != null) {
try {
pst = db.chooseSelect(sql);
System.out.println("========================================================="+pst);
pst.setString(1,username);
pst.setString(2,pwd);
rs = pst.executeQuery();
if (rs.next()) {
response.sendRedirect("http://www.baidu.com");
} else {
response.sendRedirect("http://www.google.cn");
}
} catch (Exception e) {
e.printStackTrace();
}
// }
}}我从jsp中能把值传到serlvet中,为什么不能跳转,pst的值打印出来是null,为什么??谢谢各位大侠

解决方案 »

  1.   

    我愣是看了一下才搞清楚你写的什么。。有你返回一个preparedStatement的吗?直接返回一个connection不就行啦?
    到时候关的时候好关。
    还有。在写驱动那里也应该有异常的吧。。你倒是去掉了。呵呵
      

  2.   

    楼主写的太乱了,真难明白。。
    chooseSelect方法是多余的直接在LoginServlet 中得到Connection就行了。public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       String username = request.getParameter("username");
       String pwd = request.getParameter("password");
       String rememberMe = request.getParameter("remember");
       String sql = "select * from login where name=? and pwd=?";
       
       PreparedStatement pst = null;
       ResultSet rs = null;
       DBUtil db = new DBUtil();
       try {
           conn = getConnection();
           pst = conn.prepareStatement(sql);
           System.out.println("========================================================="+pst);
           pst.setString(1,username);
           pst.setString(2,pwd);
           rs = pst.executeQuery();
           if (rs.next()) {
              response.sendRedirect("http://www.baidu.com");
           } else {
              response.sendRedirect("http://www.google.cn");
           }
         } catch (Exception e) {
            e.printStackTrace();
         }
      }
      

  3.   

    真是乱,要不直接返回个结果集,要不把connection直接写进来