HTTP状态500 - 在字符串到int转换时发生异常

时间:2014-08-04 08:57:43

标签: java mysql eclipse jsp amazon-rds

环境:我在eclipse kepler工作,我的MySQL数据库在AWS RDS上。我的目标是创建一个基于Web的项目,因此我的项目是" AWS Java Web Project"。另外,对于数据库连接,我已经将mysql-connector - * - bin.jar文件添加到我的构建路径中。

以下代码当我作为一个简单的java应用程序运行时,它运行正常,但是当我在Tomcat服务器上运行它时,它显示以下错误:

org.apache.jasper.JasperException:在第114行处理JSP页面/WelcomeCustomer.jsp时发生异常

第114行:

     String s_id_string=(String)request.getParameter("s_id");       
    int s_id = Integer.parseInt(s_id_string);

根本原因

java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
org.apache.jsp.WelcomeCustomer_jsp._jspService(WelcomeCustomer_jsp.java:180)

第180行:

o_insert.setString(4, Cust_contact_string);

注意:Cust_contact_string的类型为string。

请帮助我,我似乎没有遇到这个错误!

提前致谢

更新:

<form name="s_id_form" method="post" onsubmit=" return s_id_form()"> 
Choose a Shop from above by entering the respective s_id : 
<input type="text" name="s_id" id="s_id"> <input type="submit" value="submit"> 
</form>     
<%  
String s_id_string=(String)request.getParameter("s_id");    
int s_id = Integer.parseInt(s_id_string);   
%> 

3 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为s_id_stringnull。修改代码为

String s_id_string=(String)request.getParameter("s_id");       
int s_id=0;
if(s_id_string !=null || s_id_string !=""){
  s_id = Integer.parseInt(s_id_string);
}
else{
  s_id=0;//assign any value
}

答案 1 :(得分:0)

不要信任客户端验证。始终也要进行服务器端验证。

所提供的输入(null)显而易见。

请在继续之前检查null。以及检查""

在提供检查后,将代码包装在try catch block中,以便在奇怪的输入传递到服务器端时执行某些操作。

答案 2 :(得分:0)

  

处理JSP页面/WelcomeCustomer.jsp

时发生异常

我建议您避免使用Scriplet并使用JSP Standard Tag LibraryExpression language来避免此类错误。

${param.s_id}

详细了解JSP - Implicit Objects

  

param:将请求参数名称映射到单个值

     

您可以使用<c:if><c:choose>来检查nullempty值。

<c:if test="${empty param.s_id}">
    s_id is empty or null.
</c:if>
<c:if test="${not empty var1}">
    s_id is NOT empty or null.
</c:if>

<c:choose>
    <c:when test="${empty param.s_id}">
        s_id is empty or null.
    </c:when>
    <c:otherwise>
        s_id is NOT empty or null.
    </c:otherwise>
</c:choose>

${not empty param.s_id}也可以由${!empty param.s_id}完成。

Learn more...