严重: [java.lang.NumberFormatException: null]

求助,在学习jsp中遇到这个问题,望大神帮助。
这是我的代码:


<%
int id = Integer.parseInt(request.getParameter("id"));
String dbDriver = "com.mysql.jdbc.Driver";
String dbUrl = "jdbc:mysql://localhost:3306/jsp";
String dbUser = "root";
String dbPass = "root";
Class.forName(dbDriver);
Connection conn=DriverManager.getConnection(dbUrl, dbUser, dbPass);
String sql="select * from admin where id="+id;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
%>
" method="post">
value=>

>



<%
}
%>

报错:
严重: Servlet.service() for servlet [jsp] in context with path [/hello5] threw exception [java.lang.NumberFormatException: null] with root cause
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at org.apache.jsp.do_005fupdate_jsp._jspService(do_005fupdate_jsp.java:98)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)

改成这样说不定就对了int id = Integer.parseInt((String)request.getParameter("id"));

null 不能转为 Integer 类型,你应该在开头加个判断request.getParameter("id")是否等于0

判断是否为空,不为空再转换类型

String id = request.getParameter("id");

然后在String sql="select * from admin where id="+id;这个前边

判断

if(!id.equals("") && id != null){
Integer id = Integer.parseInt("id");
}

这样应该可以解决,还有看看你页面表单在接值得时候 name值是不是id 可能你页面表单要接值的那块没写name! 祝早日解决

在int id = Integer.parseInt(request.getParameter("id"))中id为null,可能是你根本就没有把id放进request域中,如果你用post请求,
可以在表单内加一个name为id的属性,如果你用get请求,可以直接在url后加?id=整数,你还可以直接把id放在request中。

request.getParameter("id"
在这里没有获取到 id
id是空的,你往前检查一步,看看是什么错误,是上一步都是空值,
还是代码写错,变量值不对导致接收不到为空

java.lang.NumberFormatException: null

一定是 request.getParameter("id") 为空了

request.getParameter("id") 打出来看看是不是null

一定是 request.getParameter("id") 为空了