新手 实在不明白哪里出了问题,一个注册页面通过Reservlet连接数据库,但是连接不上数据库,已经导入了驱动,谢谢大家帮忙看看
package com.lyq;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ReServlet extends HttpServlet { private Connection conn;
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
String userName=request.getParameter("userName");
String passWord=request.getParameter("passWord");
String sex=request.getParameter("sex");
String question=request.getParameter("question");
String answer=request.getParameter("answer");
String email=request.getParameter("email");
if(conn!=null){
try{
String sql="insert into tb_user(userName,passWord,sex,question,answer,email) values(userName,passWord,sex,question,answer,email)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.executeUpdate();
PrintWriter out=response.getWriter();
out.print(userName+"注册成功!");
}

catch(Exception e){
e.printStackTrace();
}
}
else{
response.sendError(500, "数据库连接错误");
}
}
public void init() throws ServletException {
// Put your code here
super.init();
try{

Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/text";
conn=DriverManager.getConnection(url, "root", "knight");


}
catch(Exception e){
e.printStackTrace();
}
}}
然后页面显示数据库连接错误,就是conn找不到出现的情况

解决方案 »

  1.   

    你这个当然不行
    这个是servlet的
    你把conn定义成static的就行了
      

  2.   

    可不可以把连接数据库,获得连接再封装成一个类。在doPost()里面调用该类,获得连接。然后再处理请求。
      

  3.   

    将connection的定义以及初始化都放到dopost方法中,不要定义成成员变量
      

  4.   

    连接失败:用户名是否正确,url,mysql服务有没有开启
      

  5.   

    你好,我在我的eclipse上实验了你的代码没有上述问题,希望我的结果对你有所帮助。