jsp页面中用request.setAttribute("num",num);(num为变量,并确定里面存在值)
在severlet中用int num=Integer.parseInt((String)request.getAttribute("num"));
却为null。系统报错信息如下:
严重: Servlet.service() for servlet Do_StaticExecute threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at gt.servlet.Do_StaticExecute.doGet(Do_StaticExecute.java:20)
at gt.servlet.Do_StaticExecute.doPost(Do_StaticExecute.java:199)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【nicklove_live】截止到2008-08-01 19:36:27的历史汇总数据(不包括此帖):
    发帖的总数量:4                        发帖的总分数:180                      每贴平均分数:45                       
    回帖的总数量:12                       得分贴总数量:2                        回帖的得分率:16%                      
    结贴的总数量:3                        结贴的总分数:160                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:75.00 %               结分的百分比:88.89 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=nicklove_live
      

  2.   

    你从jsp怎么转到servlet的。2个页面间只能用session传,不能用request传,除非1 <jsp:include
    2 <jsp:forward
    3 <%include这些都是在服务器端完成的,request才能在2个页面间传递。
      

  3.   

    用form的action="severlet名字"转去severlet的
      

  4.   

    int num=Integer.parseInt((String)request.getAttribute("num")); 得到的是Object对象,是Integer类型的,先转换为Integer对象,然后调用intvalue方法int num=((Integer)request.getAttribute("num")).intvalue(); 
      

  5.   

    The method intvalue() is undefined for the type Integer
      

  6.   

    你这样转过去肯定是空的,你的新SERVLET拿到的是新的请求,也就是新的request对象,里面哪有你存的东西啊你要么存Session里,要么,你用超连接的方式,action="xxx.do?num=xx"这样
      

  7.   

    我在网吧里,那方法是Integer对象的,查下API,方法名字我可能记得不太清楚
      

  8.   

    还有在jsp里用setAttribute 要转发request response对象的把
      

  9.   

    除了楼上一位仁兄说的url传值,再说一种
    <input type="hidden" name="num" value="<%=num%>"> 放进form里面,servlet里面用request.getParam..接
      

  10.   

    刚才最简单的办法你用一个<input type="hidden" name="num" value="<%=num%>">放到你的form里,
    在后台用request.getParameter("num");就能得到,然后转化下就OK了
      

  11.   

    我开始就是用这个<input type="hidden" name="num" value=" <%=num%>">方法,就是因为也是null
    我才换request.setAttribute的方法的