HTTP Status 500 - java.lang.NumberFormatException: null
Erstelle ich ein standard-dynamic-web-Projekt, das wie ein Servlet, einen filter zum filtern der Anfrage-und jsp-Seiten.
Nehme ich die Anzahl der Bücher willkommen.jsp und je nach der Anzahl bin ich dem füllen der Eingabe-Felder auf hinzufügen.jsp. Ich will die Daten filtern, die durch die add.jsp. Wenn ich die Daten überprüfen durch Regex, zeigte mir Fehler an. Außerdem ist mein flow korrekte, D. H. von der start FILTER --> CONTROLLER --> FILTER - > SEITE, und so weiter???
Fehler:
java.lang.NumberFormatException: null
voller trace ist wie:
HTTP Status 500 - java.lang.NumberFormatException: null
type Exception report
message java.lang.NumberFormatException: null
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NumberFormatException: null
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
com.filter.RequestFilter.doFilter(RequestFilter.java:107)
root cause
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
org.apache.jsp.WEB_002dINF.add_jsp._jspService(add_jsp.java:139)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
com.filter.RequestFilter.doFilter(RequestFilter.java:107)
Den code, wo Ihr es zeigt, ist:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//TODO Auto-generated method stub
//place your code here
boolean flag = true;
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpServletRequest.getServletPath();
System.out.println(httpServletRequest.getServletPath());
String address = InetAddress.getLocalHost().getHostAddress();
System.out.println(address);
//For the first time (Welcome page) i will be 0 so that it will perform first if
if(i == 0)
{
System.out.println(i);
if(verify(address))
{
chain.doFilter(request, response);
i++;
}
else
{
RequestDispatcher requestDispatcher = httpServletRequest.getServletContext().getRequestDispatcher("/WEB-INF/forbidden.jsp");
requestDispatcher.forward(request, response);
return;
}
}
//For the second time (Controller) i will be 1 so that it will perform first if
else if(i == 1)
{
System.out.println(i);
i++;
System.out.println("after ++"+i);
chain.doFilter(request, response);
}
//For the second time (add page) i will be 2 so that it will perform first if
else if(i == 2)
{
if(specialChara(httpServletRequest))
{
System.out.println(i);
System.out.println("done");
i++;
chain.doFilter(request, response);
}
else
{
System.out.println(i);
flag = false;
System.out.println(""+httpServletRequest.toString()+ "\n"+httpResponse.toString());
RequestDispatcher requestDispatcher = httpServletRequest.getServletContext().getRequestDispatcher("/WEB-INF/add.jsp");
requestDispatcher.forward(request, response);
}
}
//For the third time (Controller) i will be 2 so that it will perform first if
else if(i == 3)
{
System.out.println(i);
i++;
chain.doFilter(request, response);
i = 0;
}
Seine Angabe der Fehler auf der Linie der vorwärts - () in der Schleife i==2.
Was könnte das Problem sein?
link hinzufügen.jsp ist https://docs.google.com/document/d/1fOzymYvlLXS577DrSrznRoeBnI7_hMmuqzFoK02xKoU/edit?usp=sharing
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der stack-trace, es scheint, dass das problem nicht mit Ihrer java-Klasse, sondern Ihrer JSP. Meine Vermutung ist, dass in der Zeile
keine scheint zu sein, null.Auch Sie sind besser und andere conditional tags anstelle der Verwendung von scriptlets in Ihre JSP.