Http 500 Внутренняя ошибка сервера - PullRequest
0 голосов
/ 02 апреля 2012

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

успешно выполняется

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

(пустое значение для аргумента 'arg2')

показывает 500 Внутренняя ошибка сервера

Значение 'arg2' используется переменной 'int' в 'jsp', используя Integer.parseInt(request.getParameter("arg2")

Как это исправить?

Ответы [ 3 ]

1 голос
/ 02 апреля 2012

Это потому, что вы пытаетесь проанализировать "" с помощью Integer.parseInt

Check Integer ParseInt () API

Когда вы не передаете никаких значений, как показано ниже

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

Пустая строка будет передана в параметрах http-запроса.

Так что лучше ставить пустую проверку при разборе целого числа из строки.

int arg2 = !"".equals(request.getParameter("arg2")) ? 
                Integer.parseInt(request.getParameter("arg2")): 0;
1 голос
/ 19 апреля 2017

Всегда лучше сверять параметры запроса с тем, что нужно.В этом случае вы можете использовать библиотеку org.apache.commons.lang.math.NumberUtils , чтобы проверить, является ли введенное значение числом или нет, и использовать значение по умолчанию, если оно не является числом.

int arg2 = NumberUtils.isNumber(request.getParameter("arg2")) ? Integer.parseInt(request.getParameter("arg2")) : 0;
0 голосов
/ 02 апреля 2012

Если вы используете Internet Explorer, перейдите в Инструменты - Свойства обозревателя - Дополнительно - в разделе «Снимите флажок» «Показать дружественные сообщения об ошибках HTTP».Это позволит вам получить более точное описание ошибки.

Чтобы помочь вам с самим кодом, вам нужно будет опубликовать его.

...