在尝试解析我从相应的jsp中提取的String参数并将它们变成一个整数和一个浮点数之后,我一直遇到同样的错误。在我的Web应用程序中,我有java类,其中我试图解析的值是一个整数和一个浮点数,但我似乎无法找到解析它们的方法并让我的servlet按照我的方式工作# 39;我喜欢它。这是我在servlet中使用的代码:
//get Parameter from newStudentPage.jsp
String id = request.getParameter("stuId");
String fName = request.getParameter("fName");
String lName = request.getParameter("lName");
String street = request.getParameter("street");
String city = request.getParameter("city");
String state = request.getParameter("state");
String zip = request.getParameter("zip");
String email = request.getParameter("email");
String gpa = request.getParameter("gpa");
int Zip = Integer.valueOf(zip);
float GPA = Float.parseFloat(gpa);
//Use RequestDispatcher to forward to jsp's
RequestDispatcher rd = request.getRequestDispatcher("newStudentLoginPage.jsp");
RequestDispatcher rd2 = request.getRequestDispatcher("newStudentSectionAddDrop.jsp");
//Create Student object and fill with paramater data
Student s2 = new Student();
s2.setstuId(id);
s2.setfName(fName);
s2.setlName(lName);
s2.setstreet(street);
s2.setcity(city);
s2.setstate(state);
s2.setzip(Zip);
s2.setemail(email);
s2.setgpa(GPA);
//Put Student object into Session
HttpSession ses2 = request.getSession();
ses2.setAttribute("s2", s2);
if(id.equals("")||fName.equals("")||lName.equals("")||street.equals("")||city.equals("")||state.equals("")||zip.equals("")||email.equals("")||gpa.equals("")){
rd.forward(request, response);
}else{
rd2.forward(request, response);
}
任何人都可以对我做错的事情提供一些见解吗?
答案 0 :(得分:2)
这些行中的一个或全部都可能导致异常:
int Zip = Integer.valueOf(zip);
float GPA = Float.parseFloat(gpa);
您需要检查String zip或gpa是否始终可以转换为数字。如果用户没有输入任何内容,例如""
," "
或non-number
,如七七七,该怎么办?这些条件将导致NumberFormatException
。
答案 1 :(得分:2)
您应该捕获异常并执行某些操作,即提供默认值,要求用户输入有效值等等。
Float floatGpa = null;
try {
floatGpa = Float.parseFloat(gpa);
} catch (NumberFormatException e) {
//do something
}