【问题标题】:JSP error at line 31第 31 行的 JSP 错误
【发布时间】:2016-10-01 07:21:41
【问题描述】:

当我运行 jsp 页面时,我会遇到这个错误,任何修复它的建议,(我知道 jsp 和 java 不好)...

输入异常报告

消息处理JSP页面发生异常 /assets/jsp/create-dest-code.jsp 在第 31 行

描述服务器遇到阻止它的内部错误 完成此请求。

异常 org.apache.jasper.JasperException:发生异常 在第 31 行处理 JSP 页面 /assets/jsp/create-dest-code.jsp

28: if(id > -1) 29: { 30: int insert_ch; 31:对于(整数 我=0;我 insert_ch=myStatement.executeUpdate("INSERT INTO Dest_has_Categories (Dest_idDest,Categories_idCategories) 值 ('"+id+"','"+cat[i]+"')"); 34: }

堆栈跟踪: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574) 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)

根本原因 java.lang.NullPointerException org.apache.jsp.assets.jsp.create_002ddest_002dcode_jsp._jspService(create_002ddest_002dcode_jsp.java:136) 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)

note 根本原因的完整堆栈跟踪可在 Apache Tomcat/8.0.33 日志。

我的代码:

<%
String id8=request.getParameter("id8"); //Country field  
String id9=request.getParameter("id9"); //City field
String id10=request.getParameter("id10"); //URL field
int id = -1;

Class.forName("com.mysql.jdbc.Driver"); 
String myDatabase = "jdbc:mysql://localhost:3306/project_app?user=root&password=1234"; 
Connection myConnection = DriverManager.getConnection(myDatabase);
Statement myStatement = myConnection.createStatement();  

String sqlInsert = "INSERT INTO dest(Country,City,URL) VALUES ('"+id8+"', '"+id9+"','"+id10+"')";
myStatement.executeUpdate(sqlInsert);
ResultSet rs = myStatement.executeQuery("SELECT idDest FROM dest WHERE Country='"+id8+"' AND City='"+id9+"' AND URL='"+id10+"'" );
while (rs.next()) {
    id=rs.getInt(1);
}
String cat[]=request.getParameterValues("dest1");

if(id > -1)
{
    int insert_ch;
    for(int i=0;i<cat.length;i++)
    {
      insert_ch=myStatement.executeUpdate("INSERT INTO Dest_has_Categories (Dest_idDest,Categories_idCategories) VALUES ('"+id+"','"+cat[i]+"')");
    }
}


 myStatement.close(); 
   myConnection.close(); %>

   <h1 style="color:blue;">Successful Registration </h1>

【问题讨论】:

    标签: java sql apache jsp


    【解决方案1】:

    您确定您的连接字符串有效吗?在此处的示例中,您的代码中缺少连接字符串中的更多详细信息(例如数据库名称):

    Connection con = null;
        try {
    
          con = DriverManager.getConnection(
              "jdbc:sqlserver://localhost\\SQLEXPRESS;"
            + "user=sa;password=HerongY@ng;"
            + "database=AdventureWorks2014");
    

    source

    【讨论】:

      【解决方案2】:

      我假设一旦您知道第 31 行是什么,由于许多其他此类问题,您将能够修复您的 NPE,因此让我们专注于如何在您的案例中找到第 31 行。

      根据您的堆栈跟踪,您使用的是Tomcat 8,因此您的jsp 文件/assets/jsp/create-dest-code.jsp 的源代码在$TOMCAT_HOME/work/Catalina/localhost/assets/org/apache/jsp/jsp/create-dest-code_jsp.java 中,从这里检查第31 行,您将知道如何修复它。

      其实你在这里已经有了答案:

      28: if(id > -1) 29: { 30: int insert_ch; 31: for(int i=0;i insert_ch=myStatement.executeUpdate("INSERT INTO Dest_has_Categories (Dest_idDest,Categories_idCategories) 值 ('"+id+"','"+cat[i]+"')"); 34: }

      您的变量cat 似乎是null,这可能意味着您没有参数dest1 的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多