环境:我在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);
%>
答案 0 :(得分:1)
这种情况正在发生,因为s_id_string
为null
。修改代码为
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 Library和Expression language来避免此类错误。
${param.s_id}
param:
将请求参数名称映射到单个值
您可以使用<c:if>
或<c:choose>
来检查null
和empty
值。
<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}
完成。