Here i come up with problem while performing some operation like update,delete and insert but its return some null value with exception kindly some one could look at the code if its wrong:

Error:

HTTP Status 500 - null type Exception report message null description The server encountered an internal error that prevented it from fulfilling this request. exception java.lang.NumberFormatException: null java.lang.Integer.parseInt(Integer.java:454) java.lang.Integer.parseInt(Integer.java:527) Controller.ControllerTest.doGet(ControllerTest.java:48) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs. Apache Tomcat/6.0.37 

user.jsp:

<form method="POST" action='ControllerTest' name="frmAddUser"> <jsp:useBean scope="request" /> <% for(int i = 0; i < users.size(); i+=1) { UseBean user = (UseBean)users.get(i); %> id:<input type="text" name="ID" value="<%=user.getID() %>"><br/> Name:<input type="text" name="Name" value="<%= user.getName() %>"><br/> Password:<input type="text" name="password" value="<%= user.getPassword() %>"><br/> phoneno:<input type="text" name="Phoneo" value="<%= user.getPhoneo() %>"><br/> Emailid:<input type="text" name="Emailid" value="<%= user.getEmailID() %>"> <br/> <%} %> <input type="submit" value="Submit" /> </form> 

listuser.jsp

 <body> <table border=1> <thead> <tr> <th>Id</th> <th>Name</th> <th>password</th> <th>phoneno</th> <th>emailid</th> <th colspan=2>Action</th> </tr> </thead> <tbody> <jsp:useBean scope="request" /> <% for(int i = 0; i < users.size(); i+=1) { UseBean user = (UseBean)users.get(i); %> <tr> <td><%= user.getID() %></td> <td><%= user.getName() %></td> <td><%= user.getPassword() %></td> <td><%= user.getEmailID() %></td> <td><%= user.getPhoneo() %></td> <td><a href="ControllerTest?action=edit&userId=<%= user.getID() %>" >Update</a></td> <td><a href="ControllerTest?action=delete&userId=<%= user.getID() %>">Delete</a></td> </tr> <% } %> </tbody> </table> <p> <a href="ControllerTest?action=insert">Add User</a> </p> 

Controllertest.java:

package Controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dao.UserDao; import dbBean.UseBean; public class ControllerTest extends HttpServlet { private static final long serialVersionUID = 1L; private static String INSERT_OR_EDIT = "/user.jsp"; private static String LIST_USER = "/listUser.jsp"; private UserDao dao; public ControllerTest() { super(); dao = new UserDao(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String forward = ""; String action = request.getParameter("action"); if (action.equalsIgnoreCase("delete")) { try { int userId = Integer.parseInt(request.getParameter("userId")); dao.deleteUser(userId); forward = LIST_USER; request.setAttribute("users", dao.getAllUsers()); } catch (NumberFormatException ex) { System.out.println("Error occured with during conversion delete"); } } else if (action.equalsIgnoreCase("edit")) { forward = INSERT_OR_EDIT; try { int userId = Integer.parseInt(request.getParameter("userId")); UseBean bean = dao.getUserById(userId); request.setAttribute("user", bean); } catch (NumberFormatException ex) { System.out.println("Error occured with during conversion edit"); } } else if (action.equalsIgnoreCase("listUser")) { forward = LIST_USER; request.setAttribute("users", dao.getAllUsers()); } else { forward = INSERT_OR_EDIT; } RequestDispatcher view = request.getRequestDispatcher(forward); view.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { UseBean bean = new UseBean(); bean.setName(request.getParameter("Name")); bean.setPassword(request.getParameter("password")); bean.setPhoneo(request.getParameter("Phoneo")); bean.setEmailID(request.getParameter("Emailid")); String userid = request.getParameter("ID"); if (userid == null || userid.isEmpty()) { dao.addUser(bean); } else { bean.setID(Integer.parseInt(userid)); dao.updateUser(bean); } RequestDispatcher view = request.getRequestDispatcher(LIST_USER); request.setAttribute("users", dao.getAllUsers()); view.forward(request, response); } catch (Exception e) { e.printStackTrace(); System.out.println("erro occuring in update code"); } } } 
4

5 Answers

You're getting a NumberFormatException when trying to convert the empty string "" into an Integer...

You get a NumberFormatException, if you do not pass a valid number to Integer.parseInt()

int userId = Integer.parseInt(request.getParameter("userid")); 

Try to print the value of request.getParameter("userid") and check.

The page you are forwarding on might have some string to integer conversions that might be creating the error

Before parsing a string you should do null check and trim then parse. If NumberFormatException occurs handle it.

Whenever you get into trouble like this, put debug statements and analyse
what actually causing exception. null or empty or whitespace or string? Then you can handle it easily.

Integer userId= parseToNumber(request.getParameter("userId")); //check for not null and proceed // returns null if receivedParam = "", "some string", null or number with space private Integer parseToNumber(String receivedParam) { System.out.println("received param:"+receivedParam); if (receivedParam != null && !receivedParam.trim().isEmpty()) { try { return Integer.parseInt(receivedParam.trim()); } catch (NumberFormatException nfe) { System.out.println("received param is not a number"); return null; } } else { System.out.println("received param is null or empty"); return null; } } 

In file user.jsp and listuser.jsp. you used space for URL Rewriting.

you should use

 <tr> <td><%=user.getID()%></td> <td><%=user.getName()%></td> <td><%=user.getPassword()%></td> <td><%=user.getEmailID()%></td> <td><%=user.getPhoneo()%></td> <td><a href="ControllerTest?action=edit&userId=<%=user.getID()%>" >Update</a></td> <td><a href="ControllerTest?action=delete&userId=<%=user.getID()%>">Delete</a></td> </tr> 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy