VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 807|回复: 5

请各位高手解决一下这个JSP问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-6 16:10:01 | 显示全部楼层 |阅读模式
这段代码,我执行时出错如下;
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause
java.lang.NullPointerException
        bean.jdbcBean.closeDB(jdbcBean.java:41)
        org.apache.jsp.checkout_jsp._jspService(checkout_jsp.java:172)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
源码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>网上碟店:碟碟不休</title>
</head>
<body>
<%@ include file="header.jsp"%>
<table width="800" height="400" border="1" align="center">
  <tr>
    <td><%
        Vector buylist = (Vector)session.getValue("shopcar");
        if(buylist==null||buylist.size()<1)
                {
%>
        <jsp:forward page="mydisk.jsp"></jsp:forward>
<%}
        String userid = (String)session.getValue("uid");
        float pricenum =0;
        for(int i=0;i<buylist.size();i++)
                {
                        Disk disk = (Disk)buylist.elementAt(i);
                        pricenum = pricenum + disk.getBuynum()*disk.getPrice();
                }
       
        jdbcBean diskBean1=new jdbcBean();
        String sql1="INSERT INTO myorder(user_id, price_num, order_time) VALUES('"+userid+"',"+pricenum+",'"+current_time+"')";
        int m=diskBean1.executeUpdate(sql1) ;
        diskBean1.closeDB();  
        jdbcBean diskBean2=new jdbcBean();
        String sql2="SELECT order_id FROM myorder WHERE order_id='"+userid+"' AND order_time='"+current_time+"'";
        ResultSet rs=diskBean2.executeQuery(sql2) ;
        rs.next();
        String orderid = rs.getString("order_id");
        diskBean2.closeDB();
       
        for(int j=0; j<buylist.size(); j++)
        {
                Disk disk = (Disk)buylist.elementAt(j);
                jdbcBean diskBean3=new jdbcBean();
                String sql3="INSERT INTO orderitem(order_id, sno, disk_num) VALUES('"+orderid+"','"+disk.getSno()+"','"+disk.getBuynum()+"')";
                int mm=diskBean3.executeUpdate(sql3);
                diskBean3.closeDB();  
        }               
%></td>
  </tr>
   </table>
<%@ include file="footer.jsp"%>
</body>
</html>

我已在header.jsp中包含了所需的包<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.text.*"%>
<%@ page import="bean.*"%>
上面代码在然出错,但是它还是能在数据表myorder中插入了数据,期待各位的帮助!!
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-6 19:42:01 | 显示全部楼层
不太懂,哪位高手指点一下?
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-6 19:54:01 | 显示全部楼层
空指針異常,NullPointerException
看看你的closeDB方法.連接是否打開?
逐步調試一下你的語句,看有哪些變量是沒有被賦值的.
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-7 09:57:01 | 显示全部楼层
这个是你的 ResultSet rs; rs你没用过  或是你已经关了 rs.close()多关了
回复

使用道具 举报

1

主题

14

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-1-8 09:54:01 | 显示全部楼层
一步步的调试,不要一下全写出来
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-10 17:54:01 | 显示全部楼层
首先谢谢各位,woaiyan2和 zslinke 说的我情况我都注意了,public void closeDB(){
         try {
           if (rs != null) rs.close();
         }
         catch (Exception e) {
           e.printStackTrace(System.err);
         }
         try {
           if (stmt != null) stmt.close();
         }
         catch (Exception e) {
           e.printStackTrace(System.err);
         }
         try {
           if (conn != null) {
             conn.close();
           }
         }
         catch (Exception e) {
           e.printStackTrace(System.err);
         }
       }
我用了这个函数,但是出的问题还是和以前一样,仍然期待各位的帮助,顺便问各位,推荐一个可逐步调试JSP的工具,本人现在用的是Dreamweaver.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表