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