java.lang.NumberFormatException: null
Type 异常报告消息 在 行处理 时发生异常
描述 服务器遇到一个意外的情况,阻止它完成请求。
Exception
org.apache.jasper.JasperException: 在 行处理 时发生异常
19: String n1=request.getParameter("n");
20: double sum=0.0;
21: double temp=1.0;
22: int m=Integer.parseInt(n1);
23: for (int i=1;i<m;i+=2){
24: sum+=temp/i;
25: temp=-temp;
Stacktrace:
看报错提示很明显这里就是类型转换异常,用null去转int了,String n1=request.getParameter("n");这一行有问题,获取到的值是null,先排查下是不是getParameter("n")获取不到值,如果是获取不到值,确定下你提交的jsp表单里是否有name='n'的控件。 Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:626)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:542)
java.lang.Integer.parseInt(Integer.java:615)
org.apache.jsp.index_jsp._jspService(index_jsp.java:132)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 很可能19行那里从request获取数据失败了 倒戈卸甲 发表于 2020-4-13 19:25
很可能19行那里从request获取数据失败了
想知道解决方法,网上查到的用了会出现新的问题 Kasey 发表于 2020-4-13 20:13
想知道解决方法,网上查到的用了会出现新的问题
按理说,根据参数名称获取参数值是request很基础的一个通用方法,使用就两步:从httpservlet拿到request,然后调用该方法。会不会你创建web项目时servlet没配置好。要不网上找个教程重新研究一下怎么配置 有兴趣可以看看这个码云:https://gitee.com/wen_jun_zhang/agency_completion
自己写的项目webpack搭建的
全栈 目前还在慢慢写
里面的用户登录 我写完了会返回用户已保存的数据
你可以参考我用nodejs写的API 还有个治本不治根的解决办法,就是加个判断,当获取到值为null时,就给n1赋值0,这样就不担心代码会异常了,规范的代码也应该是这样,String转int是有风险的,你得预知问题出现的可能,做预处理
String n1=request.getParameter("n");
if(n1 == null){
n1 = "0";
}
double sum=0.0;
double temp=1.0;
int m=Integer.parseInt(n1);
for (int i=1;i<m;i+=2){
sum+=temp/i;
temp=-temp;
}
页:
[1]