-1

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")

如何解决?

4

3 回答 3

1

这是因为您正在尝试解析“”Integer.parseInt

检查整数 parseInt() API

当您不传递任何值时,如下所示

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

空字符串将在 http 请求参数中传递。

所以,从字符串解析整数时最好放空检查。

int arg2 = !"".equals(request.getParameter("arg2")) ? 
                Integer.parseInt(request.getParameter("arg2")): 0;
于 2012-04-02T09:52:09.943 回答
1

最好根据需要检查查询参数。在这种情况下,您可以使用org.apache.commons.lang.math.NumberUtils库来检查输入的值是否为数字,如果不是数字则使用默认值。

int arg2 = NumberUtils.isNumber(request.getParameter("arg2")) ? Integer.parseInt(request.getParameter("arg2")) : 0;
于 2017-04-19T15:17:34.103 回答
-1

如果您使用的是 Internet Explorer,请转到工具 - Internet 选项 - 高级 - 浏览下的“显示友好的 HTTP 错误消息”。这将使您能够更好地描述错误是什么。

为了帮助您编写代码本身,您需要发布它。

于 2012-04-02T07:23:18.530 回答