一段jsp代码,在windows下运行正常,在linux下报错
<!--访问量统计-->  
  <% 
 String   str   =    " "; 
 DBSource   db   =   new   DBSource(); 
 db.executeQuery( "SELECT   FIELD1   FROM   TABLE1   WHERE   ROLE= 'system ' "); 
 db.next(); 
 str   =   db.getString( "FIELD1 "); 
 int   a   =   Integer.parseInt(str);   //此处报错:For   input   string:    " " 
 a   =   a   +   1; 
 String   str1   =   String.valueOf(a); 
 db.executeQuery( "UPDATE   TABLE1   SET   A= "   +   str1); 
 %>  
  <!--访问量统计-完-->    
 通过表TABLE1中ROLE= 'system '的一行来实现访问量统计。已经确认数据库连接没有问题,且表TABLE1中有且仅有一行满足ROLE= 'system '。   
 在windows下开发,页面运行正常,访问量统计功能也是正确的。可是部署到linux系统后,就会报错:For   input   string:    " "。经过调试,已经确认报错的语句为:   
             int   a   =   Integer.parseInt(str);      
 原因应该是没有取出值。可是数据库中确实有这个值。望大虾指教!   
------解决方案--------------------这跟系统应该没关系吧, 
 若str是 " ",在windows下也是会报异常的阿 
 还是先确认下程序是否正确.
------解决方案--------------------一般的做法 
 int a = Integer.parseInt(str); 
  写进一个方法中, 
 要考虑str是否为数字形, 
 还有 使用Integer.parseInt(str)要截获异常的。try catch surrounding 
------解决方案--------------------关注
------解决方案--------------------db.executeQuery( "SELECT FIELD1 FROM TABLE1 WHERE ROLE= 'system ' "); 
 db.getString( " ");????????? 
 db  ????????? 
------解决方案--------------------加上在数值转换加上:try catch 
 确认你linux下:在str = db.getString( "FIELD1 ");这条语句运行完后str 的值是多少. 
 其实这个和系统无关,关键是数据库的值
------解决方案--------------------把读出来的数据trim一下,然后在Parse
------解决方案--------------------SELECT FIELD1 FROM TABLE1 WHERE ROLE= 'system ' 
 这条语句  你首先到 数据库客户端中去执行一下   看看能不能取得数据 
 估计是取不到   
 还有  parse  时  catch 一下吧   否则 就做个判断,给要parse 的对象附个初始值