出现错误页面,上周上传了文件,但我没有做任何更改

问题描述

|| 这是我的JSF / HTML页面
<?xml version=\'1.0\' encoding=\'UTF-8\' ?>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\"
  xmlns:ui=\"http://java.sun.com/jsf/facelets\"
  xmlns:f=\"http://java.sun.com/jsf/core\"
  xmlns:h=\"http://java.sun.com/jsf/html\"
  xmlns:c=\"http://java.sun.com/jsp/jstl/core\">


<body>


        <ui:composition template=\"./templates/template.xhtml\">
        <ui:define name=\"content\">
            <c:choose>
                <c:when test=\"#{controls.designAuth}\">
                Welcome Report Designer!<br /><br />

                <div id=\"fileUpload\">



                    <form name=\"myForm\" action=\"../UploadServlet\" enctype=\"multipart/form-data\"  method=\"POST\">

                        <b>Make sure your filename is meaningful (eg. WasteByMachineReport.jrxml)</b><br /><br />

                        Please specify a file:<input type=\"file\" name=\"file\" size=\"40\"/><br /><br />
                        Number of parameters: <select name=\"numSelect\" id=\'numSelect\' onchange=\"draw_param_dropdowns();\">
                            <option selected=\"selected\" >0</option>
                                                    <option>1</option>
                                                    <option>2</option>
                                                    <option>3</option>
                                                    <option>4</option>
                                                    <option>5</option>
                                                    <option>6</option>
                                                    <option>7</option>
                                                    <option>8</option>
                                                    <option>9</option>
                                                    <option>10</option>
                                                    <option>11</option>
                                                    <option>12</option>
                                                    <option>13</option>
                                                    <option>14</option>
                                                    <option>15</option>
                                              </select><br />
                                              <br /><br />
                                              <table border=\"0\">
                                                  <tr style=\"background-color:#dddddd;color:black;\"><td><span id =\"tabletitles\" style =\"display: none;\">Parameter Name</span></td><td><span width=\"200\" id =\"tabletitles2\" style =\"display: none;\">Data Type</span></td></tr>

                                                  <tr style=\"background-color:#dddddd;color:black;\"><td>
                                                          <input type=\"text\" name=\"P1\" id=\"P1\" style=\"display:none;\"></input></td><td><select id=\"Ptype1\" name=\"Ptype1\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                                          </td></tr>
                                             <tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P2\" id=\"P2\" style=\"display:none;\"></input></td><td><select id=\"Ptype2\" name=\"Ptype2\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr> <tr style=\"background-color:#dddddd;color:black;\"><td><input type=\"text\" name=\"P3\" id=\"P3\" style=\"display:none;\"></input></td><td><select id=\"Ptype3\" name=\"Ptype3\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P4\" id=\"P4\" style=\"display:none;\"></input></td><td><select id=\"Ptype4\" name=\"Ptype4\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P5\" id=\"P5\" style=\"display:none;\"></input></td><td><select id=\"Ptype5\" name=\"Ptype5\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P6\" id=\"P6\" style=\"display:none;\"></input></td><td><select id=\"Ptype6\" name=\"Ptype6\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr> <tr style=\"background-color:#dddddd;color:black;\"><td><input type=\"text\" name=\"P7\" id=\"P7\" style=\"display:none;\"></input> </td><td><select id=\"Ptype7\" name=\"Ptype7\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P8\" id=\"P8\" style=\"display:none;\"></input></td><td><select id=\"Ptype8\" name=\"Ptype8\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P9\" id=\"P9\" style=\"display:none;\"></input></td><td><select id=\"Ptype9\" name=\"Ptype9\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td><input type=\"text\" name=\"P10\" id=\"P10\" style=\"display:none;\"></input></td><td> <select id=\"Ptype10\" name=\"Ptype10\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td><input type=\"text\" name=\"P11\" id=\"P11\" style=\"display:none;\"></input></td><td> <select id=\"Ptype11\" name=\"Ptype11\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td><input type=\"text\" name=\"P12\" id=\"P12\" style=\"display:none;\"></input> </td><td><select id=\"Ptype12\" name=\"Ptype12\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td><input type=\"text\" name=\"P13\" id=\"P13\" style=\"display:none;\"></input> </td><td><select id=\"Ptype13\" name=\"Ptype13\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P14\" id=\"P14\" style=\"display:none;\"></input></td><td><select id=\"Ptype14\" name=\"Ptype14\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                             </td></tr><tr style=\"background-color:#dddddd;color:black;\"><td> <input type=\"text\" name=\"P15\" id=\"P15\" style=\"display:none;\"></input></td><td><select id=\"Ptype15\" name=\"Ptype15\" style=\"display:none;\">
                                                                                                   <option>Date</option>
                                                                                                   <option>String</option>
                                                                                                   <option>Number</option></select>
                                              </td></tr></table>
<script type=\"text/javascript\" language=\"Javascript\">


                                                    function draw_param_dropdowns(){

                                                     for (var x = 1; x <= 15; x++) {
                                                            document.getElementById(\'Ptype\' + x).style.display=\'none\';
                                                            document.getElementById(\'P\' + x).style.display=\'none\';

                                                            document.getElementById(\"tabletitles\").style.display = \'none\';
                                                            document.getElementById(\"tabletitles2\").style.display = \'none\';

                                                        }
                                                                if (document.getElementById(\"numSelect\").selectedindex >=1)
                                                                    {document.getElementById(\"tabletitles\").style.display = \'block\';
                                                                     document.getElementById(\"tabletitles2\").style.display = \'block\';}


                                                        for (var y = 1; y <= document.getElementById(\"numSelect\").selectedindex; y++) {
                                                            document.getElementById(\'Ptype\' + y).style.display = \'block\';
                                                            document.getElementById(\'P\' + y).style.display = \'block\';
                                                        }
                                                    }


    </script>

                        <input type=\"submit\" value=\"Upload\"/>

                    </form>

                </div>
                </c:when>
                <c:otherwise>
                    Not Authorized 
                </c:otherwise>
            </c:choose>

        </ui:define>

    </ui:composition>

</body>
这是一个Java Servlet,就像我所说的一周左右上传文件一样
/*\\_________________________________________________
 * To change this template,choose Tools | Templates
 * and open the template in the editor.
\\*///-----------------------------------------------

package DBFunctions;

// Import required java libraries
import java.io.*;
import java.util.*;



import javax.servlet.ServletConfig;
import javax.servlet.servletexception;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.diskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.output.*;

public class UploadServlet extends HttpServlet {

   private boolean isMultipart;
   private String filePath;
   private int maxFileSize = 200 * 1024;
   private int maxMemSize = 4 * 1024;
   private File file ;
   private String name;
   private String reportTitle;


    @Override
   public void init(){
      // Get the file location where it would be stored.
      filePath = \"c:\\\\Projects\\\\WebApplication8\\\\web\\\\uploads\\\\\";

   }
    @Override
   public void doPost(HttpServletRequest request,HttpServletResponse response)
              throws servletexception,java.io.IOException {
      // Check that we have a file upload request



      isMultipart = ServletFileUpload.isMultipartContent(request);
      request.getParameter(null);
      response.setContentType(\"text/html\");
      java.io.PrintWriter out = response.getWriter( );
      if( !isMultipart ){
         out.println(\"<html>\");
         out.println(\"<head>\");
         out.println(\"<title>Servlet upload</title>\");
         out.println(\"</head>\");
         out.println(\"<body>\");
         out.println(\"<p>No file uploaded</p>\");
         out.println(\"</body>\");
         out.println(\"</html>\");

         return;
      }
      diskFileItemFactory factory = new diskFileItemFactory();
      // maximum size that will be stored in memory
      factory.setSizeThreshold(maxMemSize);
      // Location to save data that is larger than maxMemSize.
      factory.setRepository(new File(\"c:\\\\temp\"));

      // Create a new file upload handler
      ServletFileUpload upload = new ServletFileUpload(factory);
      // maximum file size to be uploaded.
      upload.setSizeMax( maxFileSize );

      try{
      // Parse the request to get file items.
      List fileItems = upload.parseRequest(request);

      // Process the uploaded file items
      Iterator i = fileItems.iterator();

      out.println(\"<html>\");
      out.println(\"<head>\");
      out.println(\"<title>Servlet Upload</title>\");
      out.println(\"</head>\");

      out.println(\"<body><div style=\'position:absolute;width:500px;height:700px;left:35%;background-color:#d2d2d2;\'><center><br /><br /><br /><br /><br />\");
      //out.println(filePath);
      while ( i.hasNext () )
      {
         FileItem fi = (FileItem)i.next();
         if ( !fi.isFormField () )
         {
            // Get the uploaded file parameters
            String fieldName = fi.getFieldName();
            String fileName = fi.getName();
            String contentType = fi.getContentType();
            boolean isInMemory = fi.isInMemory();
            long sizeInBytes = fi.getSize();
            // Write the file
            name = fileName;
            if( fileName.lastIndexOf(\"\\\\\") >= 0 ){
               file = new File( filePath +
               fileName.substring( fileName.lastIndexOf(\"\\\\\")));
            }else{
               file = new File( filePath +
               fileName.substring(fileName.lastIndexOf(\"\\\\\")+1));
            }
            fi.write( file );


            out.println(\"<br /><br />Uploaded Filename: \" + fileName + \"<br>\");
         }
      }
      out.println(\"<br /><br /><a href=\'/WebApplication8/faces/it.xhtml\'>Add New File to / Edit Menu Tree</a><br /><br /><br />\");
      out.println(\"<a href=\'/WebApplication8/faces/designer.xhtml\'>Back</a></center></div>\");

      //-------------------------------------------------------------------------

//            String params  =request.getParameter(\"numParams\");
//
//
//             int numParams = Integer.parseInt(params);
//
//            out.println(numParams);

            DBConnect db = new DBConnect();

            boolean result = db.DBConnectAndUpdate(\"INSERT INTO PLANT.APPLIC VALUES (9999,\'\" + name + \"\',\'R\',\'\" + \"\',\'eng\')\");


      //-------------------------------------------------------------------------



      out.println(\"</body>\");
      out.println(\"</html>\");


   }catch(Exception ex) {
       System.out.println(ex.getMessage());
   }

   }
    @Override
   public void doGet(HttpServletRequest request,HttpServletResponse response)
        throws servletexception,java.io.IOException {

        throw new servletexception(\"GET method used with \" +
                getClass( ).getName( )+\": POST method required.\");
   }
}
这是错误 我查看了该错误,并查看了整个servlet中是否缺少分号或愚蠢的东西,但是自上次运行以来,我并未进行任何字面上的更改
type Exception report

message

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

exception

java.lang.NullPointerException
    java.util.Hashtable.get(Hashtable.java:334)
    org.apache.tomcat.util.http.Parameters.getParameterValues(Parameters.java:195)
    org.apache.tomcat.util.http.Parameters.getParameter(Parameters.java:240)
    org.apache.catalina.connector.Request.getParameter(Request.java:1066)
    org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
    org.netbeans.modules.web.monitor.server.MonitorRequestWrapper.getParameter(MonitorRequestWrapper.java:199)
    DBFunctions.UploadServlet.doPost(UploadServlet.java:54)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
    

解决方法

从您的servlet代码中:
request.getParameter(null);
调用此方法的几个步骤将调用java.util.Hashtable.get(null),这将引发NPE。这是预期的行为,请参见java.util.Hashtable.get(Object),因为Hashtable不允许将null作为键。这正是Stacktrace告诉您的。如果以前可以使用,则代码必须进行某种更改,因为此行将始终失败,并且几周或几个月前也将失败。 (首先,这没有太大意义)。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...