package online;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class LoginCheck extends HttpServlet
{
private Connection conn=null;
private ResultSet  rs  =null;
private Statement  stmt=null; public void init() throws ServletException 
{
try
{
String host = "localhost";
String db   = "db2";
String use  = "root";
String pass = "password";
String url  = "jdbc:mysql://"+host+":3306/"+db+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
conn=DriverManager.getConnection(url);
}
catch(Exception e)
{
System.out.println("error:"+e.getMessage());
} } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
PrintWriter out = response.getWriter();
String userid  = request.getParameter("id");
String userpwd = request.getParameter("password");
try
{
  stmt=conn.createStatement();
  rs=stmt.executeQuery("select * from member where id='"+userid+"'");
  if(rs.next()){
String pwd=rs.getString("passwd").trim();
if(!pwd.equals(userpwd)){
  out.println("<script>alert('密码错误');document.location='javascript:history.go(-1);'</script>");
}
else{
  out.println("<script>alert('登陆成功');document.location='global_login.jsp'</script>");
}
  }
  else{
out.println("<script>alert('用户名不存在');document.location='javascript:history.go(-1);'</script>");
  }
}
    catch(SQLException e)
{
      out.println(e.getMessage());
    }    finally
{
      try
  {
  rs.close();
  stmt.close();
  conn.close();
      }
      catch(SQLException e) {
  out.println(e.getMessage());
      }
    }
}
}
-------------------------------错误提示!-----------------------------java.lang.NullPointerException
at blog.LoginCheck.doPost(LoginCheck.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:286)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:205)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:203)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:637)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:488)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:568)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:631)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    空指针错误指的是你的变量值为空,而去用它调用其方法,就会产生变量没有相应的类实例来执行你所调用的方法,从而抛出异常楼主最好一步一步检查 手动的可以加入System.out.print()来调试信息
    也可以使用log4j来弄
      

  2.   

    blog/LoginCheck.java 第76行是什么语句?
    你贴出的代码只有74行,并且package为online, 似乎与运行时提示的blog.LoginCheck不一致
      

  3.   

    是 online/LoginCheck.java 第70行出错
      

  4.   

    String url  = "jdbc:mysql://"+host+":3306/"+db+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;看到这个无语了~~~  道声: 楼主辛苦啦!
      

  5.   

    qinqinxiatiao(亲亲虾条)=> 谢谢你 我知道错在那里了!哈哈哈哈 真是糊涂了
      

  6.   

    我在问大家 上面的 代码中我加了 session.setAttribute("id",userid);
    但是 编译器 报了这样的错误提示:
    ------------------------------------------------------------------------------
    LoginCheck.java:58: cannot resolve symbol
    symbol  : variable session
    location: class online.LoginCheck
                                            session.setAttribute("id",userid);-----------------------------------------------------------------------------'登陆成功'的上面加了 那个代码
      

  7.   

    加上变量申明:
    HttpSession session = request.getSession();
      

  8.   

    jshi123()==> 谢谢你 ok拉!哈哈真的感谢 2位 分一定给!
      

  9.   

    在帮我一个问题好吗?
    我想在 servlet 中访问 javabean 里的数据!怎么做好呢?如:
    javabean 里写 用 jdbc 连接 数据库的代码!
    在 servlet 里写sql 程序 但是先 import javabean的 数据!
      

  10.   

    JavaBean也是普通的Java类啊,只是遵守一些JavaBean的编写规则,并没有特殊性,可以就像调用普通的类那样:import yourpackage.YourJavaBean;// in servlet method:YourJavaBean bean = new YourJavaBean();
    data = bean.getData(); // your bean's method答案似乎太简单了,可能没有弄懂你的问题?
      

  11.   

    我在 servlet 里加了 import bean.DataDo;    // bean 文件夹下的 DataDo.java
    但出现了错误提示!LoginCheck.java:3: package bean does not exist
    import bean.DataDo;这是什么意思呢?
      

  12.   

    确实奇怪。1. DataDO.java 是否编译过了?检查输出路径(web-inf/classes/bean/)下面有无DataDo.class
    2. 不行的话,从简单的做起: 把 DataDo.java 拷贝到你的 servlet 目录下(应该是online吧),把DataDo.java中的package改成online, 这样在servlet中就不要引用了,可以去掉import xx.DataDo;
      

  13.   

    我忘告诉你了 我在编译 DataDo.java 的时候 编译器报了 上面的错误提示!
      

  14.   

    你给的错误提示:
    LoginCheck.java:3: package bean does not exist说明是在编译LoginCheck.java 第3行的时候出现错误。不是吗?我也很迷惑啊?!
      

  15.   

    不好意思!我写错了!这几天我的头都大了!是LoginCheck.java 的编译错误!
      

  16.   

    你好!谢谢你这么多次 帮我 解答 问题! 能给我 你的联系的方式啊?(如:qq,msn)
    这样问太麻烦了!直接跟你问的话 快一些! 可以吗?
      

  17.   

    现在还是老问题吗?如果是老问题还请先检查输出路径(web-inf/classes/bean/)下面有无DataDo.class很抱歉,我不是一直在网上的,基本上是干活休息的时候上网看一看,对我了解的问题给一些提示。论坛就是这个作用,也许你应该寻找其它形式的帮助。