http://localhost:8080/file.jsp?arg1=&arg2=11HTTP 500内部服务器错误
运行成功
http://localhost:8080/file.jsp?arg1=&arg2=
(空值参数 'ARG2')
显示500内部服务器错误
'的值arg2'由'jsp
'中的'int
'变量使用,使用Integer.parseInt(request.getParameter("arg2")
如何解决?
http://localhost:8080/file.jsp?arg1=&arg2=11HTTP 500内部服务器错误
运行成功
http://localhost:8080/file.jsp?arg1=&arg2=
(空值参数 'ARG2')
显示500内部服务器错误
'的值arg2'由'jsp
'中的'int
'变量使用,使用Integer.parseInt(request.getParameter("arg2")
如何解决?
这是因为你试图解析“”与Integer.parseInt
当你不传递任何值,像下面
http://localhost:8080/file.jsp?arg1=&arg2=
空字符串将在HTTP请求中传递参数。
所以,最好在从字符串解析整数时进行空白检查。
int arg2 = !"".equals(request.getParameter("arg2")) ?
Integer.parseInt(request.getParameter("arg2")): 0;
这不包括包含非数字的字符串值。例如。 'ARG2 = foo'。 – BalusC 2012-04-02 14:11:44
@BalusC:我同意,但在java +5中使用regx或模式匹配器需要不同的验证。 – 2012-04-02 14:36:42
如果您使用的是Internet Explorer,请在浏览中点击工具 - Internet选项 - 高级 - 取消选中“显示友好的HTTP错误消息”。这将允许您更好地描述错误是什么。
为了帮助您处理代码本身,您需要将其发布。
POST不起作用! – 2012-04-02 07:38:12
这是一个严重的问题。浏览器与此无关。 – 2012-04-02 08:36:35
它始终是更好对证所需要的查询参数。 在这种情况下,您可以使用org.apache.commons.lang.math.NumberUtils库来检查输入的值是否为数字,如果不是数字,则使用默认值。
int arg2 = NumberUtils.isNumber(request.getParameter("arg2")) ? Integer.parseInt(request.getParameter("arg2")) : 0;
您正在使用的应用程序服务器。这是服务器/应用程序问题。检查您的应用程序是否处理空值,或者检查服务器支持。 – 2012-04-02 08:36:11
“HTTP 500内部服务器错误”是服务器在处理请求时遇到问题的过度通用消息。这反过来通常是由服务器端代码中的错误引起的。这些信息在服务器日志中是可见的,通常会出现异常和堆栈跟踪。作为一名开发人员,您应该注意这个例外。只是说“我得到了500错误”绝对没有帮助。 – BalusC 2012-04-02 14:10:27