NullPointerException空指针错误
你使用了一个未初始化的变量或者对象

解决方案 »

  1.   

    空指针异常,肯定是数据没对上,个数,名字在jsp和serlvet,javabean中要前后一致
      

  2.   

    你在JSP里调用的一个方法返回来的类是NULL
    而你却没有判断是不是NULL
    直接用了该类的方法或属性
      

  3.   

    registry.html文件:
    <HTML>
    <HEAD>
    <TITLE>registry</TITLE>
    </HEAD>
    <BODY>
    <FORM METHOD=POST ACTION="http://localhost:8080/firstjsp/registry.jsp">
    姓名:<input name="name" type="text">
    <input type="submit" value="提交">
    </form>
    </FORM>
    </BODY>
    </HTML>registry.jsp文件:
    <%@ page import="java.sql.*"%>
    <html>
    <head>
    <title>registry.jsp
    </title>
    </head>
    <body>
    <%
       Connection c = null;
       Statement s = null;
       ResultSet rs = null;
       String name = request.getParameter("name");
       try {
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
       String url = "jdbc:microsoft:sqlserver://localhost:1433;database=student";
       c = DriverManager.getConnection(url,"xy","12345678");
       s = c.createStatement();
       String upd = "insert into test (name) values("+name+")";
       s.executeUpdate(upd);
       s.close();
       c.close();
       }
       catch(SQLException e) {
       System.out.println(e);
       }
    %>
    </body>
    </html>错误如下:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:682)
    org.apache.jsp.registry_jsp._jspService(registry_jsp.java:75)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    tw.com.javaworld.CH11.HelloFilter.doFilter(Unknown Source)
    root cause java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1378)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1225)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:188)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:114)
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:141)
    org.apache.jsp.registry_jsp._jspService(registry_jsp.java:54)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    tw.com.javaworld.CH11.HelloFilter.doFilter(Unknown Source)
    note The full stack trace of the root cause is available in the Tomcat logs.谢谢大家帮我改改。
      

  4.   

    String name = request.getParameter("name");
    if(name!=null) {
      try{
        ...
      }catch(Exception e) {
      }
    }
      

  5.   

    我在classpath里加了E:\Program Files\Microsoft SQL Server 2000 driver for JDBC\lib\msbase.jar;E:\Program Files\Microsoft SQL Server 2000 driver for JDBC\lib\mssqlserver.jar;E:\Program Files\Microsoft SQL Server 2000 driver for JDBC\lib\msutil.jar
    但是还是报错
      

  6.   

    重启机器,最好把驱动放在WEB-INF\lib 下面,也不用修改classpath
      

  7.   

    如果在数据库中name是String型的话,
    String upd = "insert into test (name) values("+name+")";>>String upd = "insert into test (name) values('"+name+"')";
    而且如果是非空,在提取的时候一定要判断,做特殊处理。
      

  8.   

    谢谢大家那个问题解决了,现在又出另外的个错,错误如下:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /registry.jsp(10,0) According to TLD, tag jsp:setProperty must be empty, but is not
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:83)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:363)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:167)
    org.apache.jasper.compiler.Parser.parseBody(Parser.java:1757)
    org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1096)
    org.apache.jasper.compiler.Parser.parseSetProperty(Parser.java:994)
    org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1265)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1589)
    org.apache.jasper.compiler.Parser.parse(Parser.java:172)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:252)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:152)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:138)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:246)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:454)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:440)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:294)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    tw.com.javaworld.CH11.HelloFilter.doFilter(Unknown Source)
    note The full stack trace of the root cause is available in the Tomcat logs.
      

  9.   

    看看这个提示jsp:setProperty must be empty, but is not
      

  10.   

    String name = request.getParameter("name");
    把这个值打印出来看看。是不是空。
    是不是没有得到这个值?
      

  11.   

    String upd = "insert into test (name) values('"+name+"')";这样看看