严重: Servlet.service() for servlet UserUpdataServlet threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at org.BookShop.user.UserUpdataServlet.doPost(UserUpdataServlet.java:31)
红色地方的语句如下:int result= new userBean().updateUser(Integer.parseInt(Userid), Password, Sex, Integer.parseInt(Age), Email, Telphone, Address);updateUser()方法如下: public int updateUser(int i,String Password,String Sex,int Age,String Email,String Telphone,String Address)
{
return modify("update Users set Password='"+Password+"',Sex='"+Sex+"',Age='"+Age+"',Email='"+Email+"',Telphone='"+Telphone+"',Address='"+Address+"' where Userid="+i);
}modify()方法如下:public int modify(String sql){
int result=0;
Statement st=null; try {
st=DBConn.getConnection().createStatement();
result=st.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at org.BookShop.user.UserUpdataServlet.doPost(UserUpdataServlet.java:31)
红色地方的语句如下:int result= new userBean().updateUser(Integer.parseInt(Userid), Password, Sex, Integer.parseInt(Age), Email, Telphone, Address);updateUser()方法如下: public int updateUser(int i,String Password,String Sex,int Age,String Email,String Telphone,String Address)
{
return modify("update Users set Password='"+Password+"',Sex='"+Sex+"',Age='"+Age+"',Email='"+Email+"',Telphone='"+Telphone+"',Address='"+Address+"' where Userid="+i);
}modify()方法如下:public int modify(String sql){
int result=0;
Statement st=null; try {
st=DBConn.getConnection().createStatement();
result=st.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Integer.parseInt(Age)
检查一下Userid和Age的值是否合法。
但servlet里面取控件的name值时要转换
我的updataservlet代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String Userid = request.getParameter("Userid");
String Password = request.getParameter("Password");
String Sex = request.getParameter("Sex");
String Age = request.getParameter("Age");
String Email = request.getParameter("Email");
String Telphone = request.getParameter("Telphone");
String Address = request.getParameter("Address");
int result= new userBean().updateUser(Integer.parseInt(Userid), Password, Sex, Integer.parseInt(Age), Email, Telphone, Address);
if (result == 1) {
request.getRequestDispatcher("admin/updatauserinfo.jsp?currentPage=1").forward(request, response);
} else {
request.getRequestDispatcher("error.html").forward(request,response);
}
}我感觉好像是userid的值没有取得
设置断点的时候这个值为null
Integer.parseInt(Age)
调用之前先确定Userid和Age不为null才行。
int irn2=new userBean().updateUser(7, "updata1111", "男", 12,"[email protected]", "88888888", "北京");
System.out.println(irn2);
最后打印出的结果为1,说明sql语句没问题啊
那就查查这个值为什么为null,从你的程序逻辑来看,userid为null是错误的case