2012-04-02 9 views
-1

http://localhost:8080/file.jsp?arg1=&arg2=11HTTP 500 내부 서버 오류

실행 성공적으로

http://localhost:8080/file.jsp?arg1=&arg2=

500 내부 서버 오류

'의 값을 보여줍니다 (인수'ARG2 '에 대한 빈 값) arg2 '는 jsp에있는 변수'int '에 의해 사용됩니다.을 사용합니다.

해결 방법?

+0

사용중인 응용 프로그램 서버 그것은 서버/응용 프로그램 문제입니다. 응용 프로그램이 null 값을 처리하는지 확인하거나 서버 지원을 확인하십시오. –

+3

"HTTP 500 내부 서버 오류"는 서버가 요청을 처리하는 데 문제가 있음을 나타내는 지나치게 일반적인 메시지입니다. 이것은 대개 서버 측 코드의 버그로 인해 발생합니다. 이 정보는 서버 로그에 표시되며 대개 예외 및 스택 추적의 특성을가집니다. 개발자는 개발자로서이 예외에주의해야합니다. "나는 500 에러가있다"고 말하는 것만으로도 도움이되지 않습니다. – BalusC

답변

1

당신은 당신이 원하는 값을 전달하지 않는 경우 Integer.parseInt

확인 Integer parseInt() API

와 ""구문 분석을 시도하고 있기 때문이다 아래

http://localhost:8080/file.jsp?arg1=&arg2= 

빈 문자열은 HTTP 요청에 전달됩니다 매개 변수.

문자열에서 정수를 파싱 할 때 빈 체크를하는 것이 좋습니다.

int arg2 = !"".equals(request.getParameter("arg2")) ? 
       Integer.parseInt(request.getParameter("arg2")): 0; 
+0

숫자가 아닌 문자열 값에는 적용되지 않습니다. 예 : 'arg2 = foo'. – BalusC

+0

@BalusC : 동의하지만 java +5에서 regx 나 패턴 매처를 사용하여 다른 유효성 검사가 필요합니다. –

-1

Internet Explorer를 사용하는 경우 탐색 아래의 "친숙한 HTTP 오류 메시지 표시"에서 도구 - 인터넷 옵션 - 고급으로 이동하십시오. 이렇게하면 오류가 무엇인지 더 자세하게 설명 할 수 있습니다.

코드 자체를 돕기 위해 게시해야합니다.

+0

POST가 작동하지 않습니다 !! –

+1

그것은 심각한 문제입니다. 브라우저는 이와 관련이 없습니다. –

1

쿼리 매개 변수를 필요한 항목과 비교하는 것이 좋습니다. 이 경우 org.apache.commons.lang.math.NumberUtils 라이브러리를 사용하여 입력 된 값이 숫자인지 확인하고 숫자가 아닌 경우 기본값을 사용합니다.

int arg2 = NumberUtils.isNumber(request.getParameter("arg2")) ? Integer.parseInt(request.getParameter("arg2")) : 0;