2011-12-10 10 views
0

オンラインフォーム用にサーブレットを作成しましたが、オンラインフォームを送信しようとするたびに、次の例外が発生します:java.lang.NumberFormatException:入力文字列: ""。問題は、jspファイルにString変数がないことです。もう一つは、オンラインフォームのすべてのフィールドに記入しようとすると、情報がデータベースに送られますが、私はこれをいくつかだけ試してみると、もう例外が出ます。これは私のコードです:サーブレット文字列例外

import java.io.IOException; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.util.ArrayList; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import database.databases; 

/** 
* Servlet implementation class feildsSERVLET 
*/ 
public class feildsSERVLET extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public feildsSERVLET() 
    { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse 
    *  response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
    { 
     try 
     { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection connection = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/WhizzoChocolate", "root", ""); 
     try 
     { 
      /* 
      * int customerID = Integer.parseInt(request 
      * .getParameter("customerID")); 
      */ 
      int frog = Integer.parseInt(request.getParameter("frog")); 

      int redspring = Integer.parseInt(request.getParameter("redspring")); 
      int bluespring = Integer.parseInt(request 
        .getParameter("bluespring")); 
      int silverspring = Integer.parseInt(request 
        .getParameter("silverspring")); 

      int ramsquare = Integer.parseInt(request.getParameter("ramsquare")); 
      int ramoval = Integer.parseInt(request.getParameter("ramoval")); 
      int ramhex = Integer.parseInt(request.getParameter("ramhex")); 
      int rambutt = Integer.parseInt(request.getParameter("rambutt")); 

      int product_id = Integer.parseInt(request 
        .getParameter("product_id")); 
      Statement statement = connection.createStatement(); 

      int upd = statement 
        .executeUpdate("INSERT INTO `product`(`product_id`, `RWA`, `BWA`,`SWA`, `OSA`,`SSA`,`HSA`,`BSA`)" 
         + "VALUES" + "(" + product_id 
         + frog 

         + ", " 

         + redspring 

         + ", " 

         + bluespring 

         + ", " 

         + silverspring 

         + ", " 

         + ramoval 

         + ", " 

         + ramsquare 

         + ", " 

         + ramhex 

         + ", " + rambutt + ")"); 

      request.setAttribute("product_id", product_id); 
      request.setAttribute("frog", frog); 

      request.setAttribute("redspring", redspring); 
      request.setAttribute("bluespring", bluespring); 
      request.setAttribute("silverspring", silverspring); 

      request.setAttribute("ramsquare", ramsquare); 
      request.setAttribute("ramoval", ramoval); 
      request.setAttribute("ramhex", ramhex); 
      request.setAttribute("rambutt", rambutt); 

     } 
     finally 
     { 
      connection.close(); 

     } 
     } 
     catch (Exception e) 
     { 
     throw new ServletException(e); 
     } 

     ServletContext context = getServletContext(); 
     RequestDispatcher dispatcher = context 
      .getRequestDispatcher("/feildsjsp.jsp"); 
     dispatcher.forward(request, response); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 
    *  response) 
    */ 
    protected void doPost(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException 
    { 
     // TODO Auto-generated method stub 
    } 

} 
+0

あなたは 'request.getParameter(「XXX」)を持っているたびに、'あなたは文字列を持って、空の文字列を解析します。 –

答えて

2
私は問題はこの1つに類似したこれらの行のいずれかから来ていることを推測したい

request.getParameter("redspring")の値は、それが与える空の文字列の場合

int redspring = Integer.parseInt(request.getParameter("redspring")); 

あなたはこの例外です。

最初の引数がヌルであるか、または長さゼロの文字列である:documantationによれば

0

: 次のいずれかの状況が発生した場合に、NumberFormatException型の

例外がスローされます。あなたはすべてのパラメータを送信しないとき

はおそらく、あなたは

関連する問題