My Error
HTTP Status 500 - An exception occurred processing JSP page /insertdata.jsp at line 24
Exception report:
An exception occurred processing JSP page /insertdata.jsp at line 24
description The server encountered an internal error that prevented it from
fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page
/insertdata.jsp at line 24
21: String fname = request.getParameter("firstname");
22: String emailadd = request.getParameter("email");
23: String idnumber = request.getParameter("idnum");
24: int idnum = Integer.parseInt("idnum");
25: try{
26: Class.forName("com.mysql.jdbc.Driver");
27: Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "root","7597");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
java.lang.NumberFormatException: For input string: "idnum"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
java.lang.Integer.parseInt(Integer.java:580)
java.lang.Integer.parseInt(Integer.java:615)
org.apache.jsp.insertdata_jsp._jspService(insertdata_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
My Insert Code
<%
String lname = request.getParameter("lastname");
String fname = request.getParameter("firstname");
String emailadd = request.getParameter("email");
String idnumber = request.getParameter("idnum");
int idnum = Integer.parseInt("idnum");
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/database",
"root","7597");
Statement st = con.createStatement();
st.executeUpdate("insert into dbtable(lastname, firstname, email,
idnumber)values('"+lname+"','"+fname+"','"+emailadd+"','"+idnum+"')");
out.println("data is inserted in the database");
}catch (Exception e){
out.println(e);
}
%>
My Inputted Data
<form action="insertdata.jsp">
<tr>
<td><input text="lastname" type="text" placeholder="Last name"></td>
<td><input text="firstname" type="text" placeholder="Fist name"></td>
<td><input text="email" type="email" placeholder="Email"></td>
<td><input text="idnum" type="int" placeholder="ID number"></td>
<td><input type="submit" value="Submit"/>
<input type="reset" value="Reset"/></td>
</tr>
</form>
My DataBase
SELECT * FROM `database`.dbtable;SELECT `dbtable`.`id`,
`dbtable`.`lastname`,
`dbtable`.`firstname`,
`dbtable`.`email`,
`dbtable`.`idnum`
FROM `database`.`dbtable`;
I'm really confused why it won't insert into the database. I'm using mysql workbench, netbeans compiler and jsp.
java.lang.NumberFormatException: For input string: "idnum"
means the the String value "idnum" cannot be converted to a number.
You probably meant to write
int idnum = Integer.parseInt(idnumber);
since that is the value of your parameter "idnum". Can you try using that?
除了@ f1sh答案,为了防止非数字形式利用类型number
,而不是int
<input text="idnum" type="number" placeholder="ID number"></td>
You are trying to parse the value you are retrieving from database which is then stored in 'idnumber', so you have to use 'idnumber' instead of column name in .parseInt() .
String idnumber = request.getParameter("idnum");
int idnum = Integer.parseInt("idnum");//old version
String idnumber = request.getParameter("idnum");
int idnum = Integer.parseInt(idnumber);//new version
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.