2012-07-19 4 views
1

지금은 이클립스 browser.The 오류에 다음과 같은 오류의 모습을 보여줍니다 오류에 의해 갇혀되었습니다NumberFormatException이 : 널 (null)

13:53:12,294 INFO [STDOUT] 30 
13:53:12,294 ERROR [[Expthsmon]] Servlet.service() for servlet Expthsmon threw exception 
java.lang.NumberFormatException: null 
at java.lang.Integer.parseInt(Unknown Source) 
at java.lang.Integer.parseInt(Unknown Source) 
at Expthsmon.doGet(Expthsmon.java:44) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Unknown Source) 

내가 믿는 코드

int amountofnoon=0; 
    int amountofafternoon=0; 
    int noofnoon=0; 
    int noofafternoon=0; 
    String amountnoon=null; 
    String amountafternoon=null; 
    amountnoon=request.getParameter("amountnoon"); 
    amountafternoon=request.getParameter("amountafternoon"); 
    //if((amountnoon !=null)&&(amountafternoon !=null)) 

    amountofnoon=Integer.parseInt(amountnoon); 
    System.out.println(""+amountofnoon); 
    amountofafternoon=Integer.parseInt(amountafternoon); 
    System.out.println(""+amountofafternoon); 
의이 부분

에서 문제가 발생합니다. 여기서, amountofnoon 및 amountofafoonoon은 정수 값이어야합니다. 어떻게해야합니까?

나는 또한 값 점점 곳에서 코드의 JSP 부분을 추가하고 :

<form name="expenditurefthsmon" action="Expthsmon"> 
<div align="center">Enter The Amount of Days Expenditure</div> 
<div align="center"><input type="text" name="amountnoon"></input></div> 
<div align="center">Enter The Amount of Nights Expenditure</div> 
<div align="center"><input type="text" name=amountafternoon"></input></div> 
<div align="center"><input type="submit" value="Calculate"></input></div>" 
</form> 
+3

문제는 매개 변수 중 하나가 누락되었습니다. 구문 분석을 시도하기 전에 테스트해야합니다. –

+0

한 가지 언급 할 가치가있는 점은 amountofnoon은 올바른 주어진 입력을 인쇄하는 반면, amountofafoonoon은 주어진 입력을 인쇄하지 않는다는 것입니다. – Mistu4u

+0

대부분의 매개 변수 중 하나가 정의되지 않아서'parseInt'에'null '이 전달되어 오류가 발생합니다. –

답변

2

당신의 HTML에서 위의 코드는 항상 사용자의 입력을 신뢰하지 않으며 안, 그것은보다

<div align="center"><input type="text" name="amountafternoon"></input></div> 

다른해야 name 속성

<div align="center"><input type="text" name=amountafternoon"></input></div> 

에 대한 따옴표를 벗어났습니다 코어 로직에 들어가기 전에 유효하지 않은 값이나 널 값을 다시 검증하십시오.

2

amountnoon 및/또는 amountafternoonnull있다을, 당신은 무효에 대한 요청 매개 변수의 유효성을 확인하는 데 필요

1

null 값을 확인해야합니다. 예 : 대부분의 경우

if(amountnoon != null){ 
    amountofnoon=Integer.parseInt(amountnoon); 
} 
1

,이 두 통화 중 하나가 null 반환

amountnoon=request.getParameter("amountnoon"); 
amountafternoon=request.getParameter("amountafternoon"); 

시도 로깅/Integer.parseInt에 전달하기 전에이 두 값을 인쇄.

nullparseInt으로 전달하면 설명한대로 NumberFormatException: null 오류가 표시됩니다.