【问题标题】:Exception occurred while processing JSP - while loop处理 JSP 时发生异常 - while 循环
【发布时间】:2016-11-24 03:17:21
【问题描述】:

在 Chromium 上的 Ubuntu 16.04LTS 上使用 tomcat8 运行 JSP 时出现此错误。

在我修改之前,一切都运行正常

sql = conn.prepareStatement("SELECT TITLE, VENUE, DETAILS, MAXPERSONS、COSTPERSON、DURATION、CEP 日期");

匹配新的数据库架构。

我无法弄清楚出了什么问题。

您能帮忙解决这个问题吗?还有什么我需要整体改变的吗?

JSP 页面:view-cep.jsp

<!DOCTYPE html>
<html>
    <head>
        <title>View CEP</title>
        <%@page import="java.sql.*"%>
        <%@page import="java.util.*"%>
        <%Class.forName("com.mysql.jdbc.Driver"); %>
        <%@page contentType="text/html" pageEncoding="UTF-8"%>
    </head>
    <body class="content-wrapper">
        <div class="content-page-heading">CEP - Further Action</div>
        <%!
            public class Cep {

                String URL = "jdbc:mysql://localhost:3306/DBName";
                String USERNAME = "username";
                String PASSWORD = "password";

                Connection conn = null;
                PreparedStatement sql = null;
                ResultSet res = null;

                public Cep () {

                    try{

                        conn = DriverManager.getConnection (URL, USERNAME, PASSWORD);
                        sql = conn.prepareStatement ("SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATE FROM CEP");
                    }
                    catch (Exception e) {

                        System.out.println(e);
                    }
                }
                public ResultSet getCep () {

                    try {

                        res = sql.executeQuery();
                    }
                    catch (Exception e) {

                        System.out.println(e);
                    }
                    return res;
                }
            }
        %>
        <%
            Cep cep = new Cep ();
            ResultSet ceps = cep.getCep ();

            while (ceps.next ()) { %>
            <div class="content-row">
                <div class="content-title content-dropDown-point">
                    <%= ceps.getString("TITLE") %>
                </div>
                <div class="content-details content-dropDown">
                    <hr>
                    <table>
                        <tr>
                            <td>Venue:</td>
                            <td><%= ceps.getString("VENUE") %></td>
                        </tr>
                        <tr>
                            <td>Details:</td>
                            <td><%= ceps.getString("DETAILS") %></td>
                        </tr>
                        <tr>
                            <td>Number of Employees Accepting:</td>
                            <td><%= ceps.getString("MAXPERSONS") %></td>
                        </tr>
                        <tr>
                            <td>Cost per Employee:</td>
                            <td><%= ceps.getString("COSTPERPERSON") %></td>
                        </tr>
                        <tr>
                            <td>Duration:</td>
                            <td><%= ceps.getString("DURATION") %></td>
                        </tr>
                        <tr>
                            <td>Date of Commencement:</td>
                            <td><%= ceps.getString("DATE") %></td>
                        </tr>
                        <tr>
                            <td><button>Submit</button></td>
                        </tr>
                    </table>
                </div>
            </div>
        <% } %>
    </body>
</html>

错误:在第 58 行处理 JSP 页面 /forms/view-cep.jsp 时发生异常

org.apache.jasper.JasperException: An exception occurred processing JSP page /forms/view-cep.jsp at line 58

55:             Cep cep = new Cep ();
56:             ResultSet ceps = cep.getCep ();
57: 
58:             while (ceps.next ()) { %>
59:             <div class="content-row">
60:                 <div class="content-title content-dropDown-point">
61:                     <%= ceps.getString("TITLE") %>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:578)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NullPointerException
    org.apache.jsp.forms.view_002dcep_jsp._jspService(view_002dcep_jsp.java:174)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

MYSQL 数据库架构:

+---------------+---------------+------+-----+---------+-------+
| Field         | Type          | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| TITLE         | varchar(30)   | NO   |     | NULL    |       |
| VENUE         | varchar(30)   | NO   |     | NULL    |       |
| DETAILS       | varchar(30)   | NO   |     | NULL    |       |
| MAXPERSONS    | varchar(30)   | NO   |     | NULL    |       |
| COSTPERPERSON | varchar(30)   | NO   |     | NULL    |       |
| DURATION      | varchar(30)   | NO   |     | NULL    |       |
| DATESTART     | varchar(30)   | NO   |     | NULL    |       |
+---------------+---------------+------+-----+---------+-------+

【问题讨论】:

    标签: java html mysql jsp while-loop


    【解决方案1】:

    根据您发布的架构,您的表中没有名为DATE 的列,如下所示。同样,DATE 是一个保留字,即使你想使用也应该正确地转义它。

    SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATE <--thsi one
    FROM CEP
    

    可能您的意思是使用DATESTART

    SELECT TITLE, VENUE, DETAILS, MAXPERSONS, COSTPERPERSON, DURATION, DATESTART FROM CEP
    

    【讨论】:

      猜你喜欢
      • 2018-11-13
      • 2014-11-11
      • 1970-01-01
      • 2014-09-14
      • 2013-09-21
      • 1970-01-01
      • 2014-07-25
      • 2013-08-09
      • 1970-01-01
      相关资源
      最近更新 更多