回 帖 发 新 帖 刷新版面

主题:关于JSP的一个问题:NullPointerException错误

是新手,刚写了一个JSP程序,在IE里执行的时候,出现了下列错误:
Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:207)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)


root cause

java.lang.NullPointerException
at java.lang.String.<init>(String.java:141)
at org.apache.jsp.do_enter_jsp._jspService(do_enter_jsp.java:90)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)

愿程序:
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>录入成功</title>
<head>
<body>
<%@ page language = "java" import="java.lang.* ,java.sql.* " %>
<form>
<%!
Connection con = null;
Statement stmt = null;
ResultSet rs = null;


public void jspInit() //执行数据库连结动作
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程式类别
con = DriverManager.getConnection("jdbcdbc:LocalServer"," "," "); //建立数据库连线
//建立Statement变量, 并设定记录指标类型为可前後移动
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
public void jspDestroy() //关闭变量
{
try
{
stmt.close(); //关闭Statement变量
con.close(); //关闭Connection变量
rs.close(); //关闭ResultSet变量
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
%>
<table width = "760" align = "center" >
<%
String course_id = new String(request.getParameter("course"));
String unit_num = new String(request.getParameter("chapter"));
String degreed = new String(request.getParameter("degreed"));
String content = new String(request.getParameter("point"));
if(course_id.equals(new String("0"))){
out.println("<tr><td>请选择一个课程!</td></tr>");
}else if(unit_num.equals(new String("0"))){
out.println("<tr><td>请选择一个单元!</td></tr>");
}else if(degreed.equals(new String("0"))){
out.println("<tr><td>请选择一个难度系数!</td></tr>");
} else {
String sql = "insert into coursepoint(course_id,unit_num,degreed,content) values("+course_id+","+unit_num
+","+degreed+","+content+")";
jspInit();
int n = stmt.executeUpdate(sql);
jspDestroy();
out.println("<tr><td>You have enter one information point.<br><br>");
out.println("课程名:"+course_id);
out.println("<br><br>章节:"+unit_num);
out.println("<br><br>难度系数:"+degreed);
out.println("<br><br>内容:"+content+"</td></tr>");
}
%>
</table>
</form>
</body>
</html>

回复列表 (共17个回复)

11 楼

在有,这个程序写实在是有点……,不说了,别骂我

以后注意
注释
对齐方式
定义变量名称

12 楼

以后一定注意

定义变量名称
注释
对齐方式

13 楼

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.lang.*, java.sql.* " %>
<html>

    <head>
        <title>录入成功</title>
    <head>

    <body>
        <form>
            <%
                Connection con = null;
                Statement stmt = null;
                ResultSet rs = null;
                //=======================执行数据库连结动作========================

                public void jspInit()
                {
                    try
                    {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程式类别
                        con = DriverManager.getConnection("jdbcdbc:LocalServer"," "," "); //建立数据库连线
                        //建立Statement变量, 并设定记录指标类型为可前後移动
                        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                    }catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

                //==========================关闭变量===========================

                public void jspDestroy()
                {
                    try
                    {
                        stmt.close(); //关闭Statement变量
                        con.close(); //关闭Connection变量
                        rs.close(); //关闭ResultSet变量
                    }
                    catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

            %>

            <table width = "760" align = "center" >

            <%
                String course_id = new String(request.getParameter("course"));
                String unit_num = new String(request.getParameter("chapter"));
                String degreed = new String(request.getParameter("degreed"));
                String content = new String(request.getParameter("point"));

                if(course_id.equals(new String("0")))
                {
                out.println("<tr><td>请选择一个课程!</td></tr>");
                }
                else
                {
                    if(unit_num.equals(new String("0")))
                    {
                        out.println("<tr><td>请选择一个单元!</td></tr>");
                    }
                    else
                    {
                        if(degreed.equals(new String("0"))){
                            out.println("<tr><td>请选择一个难度系数!</td></tr>");
                        }
                        else
                        {
                            String sql = "insert into coursepoint(course_id,unit_num,degreed,content) values("+course_id+","+unit_num
                            +","+degreed+","+content+")";
                            jspInit();
                            int n = stmt.executeUpdate(sql);
                            jspDestroy();
                            out.println("<tr><td>You have enter one information point.<br><br>");
                            out.println("课程名:"+course_id);
                            out.println("<br><br>章节:"+unit_num);
                            out.println("<br><br>难度系数:"+degreed);
                            out.println("<br><br>内容:"+content+"</td></tr>");
                        }
                    }
                }

            %>
            </table>
        </form>
    </body>
</html>

14 楼

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.lang.*, java.sql.* " %>
<html>

    <head>
        <title>录入成功</title>
    <head>

    <body>
        <form>
            <%
                Connection con = null;
                Statement stmt = null;
                ResultSet rs = null;
                //=======================执行数据库连结动作========================

                public void jspInit()
                {
                    try
                    {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程式类别
                        con = DriverManager.getConnection("jdbcdbc:LocalServer"," "," "); //建立数据库连线
                        //建立Statement变量, 并设定记录指标类型为可前後移动
                        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                    }catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

                //==========================关闭变量===========================

                public void jspDestroy()
                {
                    try
                    {
                        stmt.close(); //关闭Statement变量
                        con.close(); //关闭Connection变量
                        rs.close(); //关闭ResultSet变量
                    }
                    catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

            %>

            <table width = "760" align = "center" >

            <%
                String course_id = new String(request.getParameter("course"));
                String unit_num = new String(request.getParameter("chapter"));
                String degreed = new String(request.getParameter("degreed"));
                String content = new String(request.getParameter("point"));

                if(course_id.equals(new String("0")))
                {
                out.println("<tr><td>请选择一个课程!</td></tr>");
                }
                else
                {
                    if(unit_num.equals(new String("0")))
                    {
                        out.println("<tr><td>请选择一个单元!</td></tr>");
                    }
                    else
                    {
                        if(degreed.equals(new String("0"))){
                            out.println("<tr><td>请选择一个难度系数!</td></tr>");
                        }
                        else
                        {
                            String sql = "insert into coursepoint(course_id,unit_num,degreed,content) values("+course_id+","+unit_num
                            +","+degreed+","+content+")";
                            jspInit();
                            int n = stmt.executeUpdate(sql);
                            jspDestroy();
                            out.println("<tr><td>You have enter one information point.<br><br>");
                            out.println("课程名:"+course_id);
                            out.println("<br><br>章节:"+unit_num);
                            out.println("<br><br>难度系数:"+degreed);
                            out.println("<br><br>内容:"+content+"</td></tr>");
                        }
                    }
                }

            %>
            </table>
        </form>
    </body>
</html>

15 楼

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.lang.*, java.sql.* " %>
<html>

    <head>
        <title>录入成功</title>
    <head>

    <body>
        <form>
            <%
                Connection con = null;
                Statement stmt = null;
                ResultSet rs = null;
                //=======================执行数据库连结动作========================

                public void jspInit()
                {
                    try
                    {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程式类别
                        con = DriverManager.getConnection("jdbcdbc:LocalServer"," "," "); //建立数据库连线
                        //建立Statement变量, 并设定记录指标类型为可前後移动
                        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                    }catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

                //==========================关闭变量===========================

                public void jspDestroy()
                {
                    try
                    {
                        stmt.close(); //关闭Statement变量
                        con.close(); //关闭Connection变量
                        rs.close(); //关闭ResultSet变量
                    }
                    catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

            %>

            <table width = "760" align = "center" >

            <%
                String course_id = new String(request.getParameter("course"));
                String unit_num = new String(request.getParameter("chapter"));
                String degreed = new String(request.getParameter("degreed"));
                String content = new String(request.getParameter("point"));

                if(course_id.equals(new String("0")))
                {
                out.println("<tr><td>请选择一个课程!</td></tr>");
                }
                else
                {
                    if(unit_num.equals(new String("0")))
                    {
                        out.println("<tr><td>请选择一个单元!</td></tr>");
                    }
                    else
                    {
                        if(degreed.equals(new String("0"))){
                            out.println("<tr><td>请选择一个难度系数!</td></tr>");
                        }
                        else
                        {
                            String sql = "insert into coursepoint(course_id,unit_num,degreed,content) values("+course_id+","+unit_num
                            +","+degreed+","+content+")";
                            jspInit();
                            int n = stmt.executeUpdate(sql);
                            jspDestroy();
                            out.println("<tr><td>You have enter one information point.<br><br>");
                            out.println("课程名:"+course_id);
                            out.println("<br><br>章节:"+unit_num);
                            out.println("<br><br>难度系数:"+degreed);
                            out.println("<br><br>内容:"+content+"</td></tr>");
                        }
                    }
                }

            %>
            </table>
        </form>
    </body>
</html>

16 楼

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.lang.*, java.sql.* " %>
<html>

    <head>
        <title>录入成功</title>
    <head>

    <body>
        <form>
            <%
                Connection con = null;
                Statement stmt = null;
                ResultSet rs = null;
                //=======================执行数据库连结动作========================

                public void jspInit()
                {
                    try
                    {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程式类别
                        con = DriverManager.getConnection("jdbcdbc:LocalServer"," "," "); //建立数据库连线
                        //建立Statement变量, 并设定记录指标类型为可前後移动
                        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                    }catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

                //==========================关闭变量===========================

                public void jspDestroy()
                {
                    try
                    {
                        stmt.close(); //关闭Statement变量
                        con.close(); //关闭Connection变量
                        rs.close(); //关闭ResultSet变量
                    }
                    catch(Exception ex)
                    {
                        System.out.println(ex.toString());
                    }
                }

            %>

            <table width = "760" align = "center" >

            <%
                String course_id = new String(request.getParameter("course"));
                String unit_num = new String(request.getParameter("chapter"));
                String degreed = new String(request.getParameter("degreed"));
                String content = new String(request.getParameter("point"));

                if(course_id.equals(new String("0")))
                {
                out.println("<tr><td>请选择一个课程!</td></tr>");
                }
                else
                {
                    if(unit_num.equals(new String("0")))
                    {
                        out.println("<tr><td>请选择一个单元!</td></tr>");
                    }
                    else
                    {
                        if(degreed.equals(new String("0"))){
                            out.println("<tr><td>请选择一个难度系数!</td></tr>");
                        }
                        else
                        {
                            String sql = "insert into coursepoint(course_id,unit_num,degreed,content) values("+course_id+","+unit_num
                            +","+degreed+","+content+")";
                            jspInit();
                            int n = stmt.executeUpdate(sql);
                            jspDestroy();
                            out.println("<tr><td>You have enter one information point.<br><br>");
                            out.println("课程名:"+course_id);
                            out.println("<br><br>章节:"+unit_num);
                            out.println("<br><br>难度系数:"+degreed);
                            out.println("<br><br>内容:"+content+"</td></tr>");
                        }
                    }
                }

            %>
            </table>
        </form>
    </body>
</html>

17 楼

回3楼话,日期问题  一,那个人是用ASP写的,怪那个人就是所问非所答,怪我的话就是不会ASP

我来回复

您尚未登录,请登录后再回复。点此登录或注册