设置输出,在console中慢慢调试。跟你设置的try 有关

解决方案 »

  1.   

    这里有一堆,自己找找是属于哪一个吧~!呵呵applet的发出请求操作的时机不恰当。
    从小服务程序调用 RequestDispatcher.forward() 方法或从 JSP 使用 jsp:forward 标记时,将抛出 IllegalStateException。
    小服务程序
    从小服务程序调用 RequestDispatcher.forward() 方法或从 JSP 使用 jsp:forward 标记时,将抛出 IllegalStateException。 
    以下信息将出现在小服务程序错误页上: 
    检测到递归错误。 
    服务器不能使用指定的错误页。 请检查应用程序错误路径。 
    原来的错误: 
    错误信息:空 
    错误代码:500 
    目标小服务程序:空 
    出错堆栈: 
    -------------------------------------------------------------------------------- 
    根错误-1:空 
    java.lang.IllegalStateException 
    com/ibm/servlet/engine/webapp/WebAppRequestDispatcher.forward(Ljavax/servlet 
    /ServletRequest;Ljavax/servlet/ServletResponse;)V+39 (WebApp.java:995) 
    mypackage/HelloWorldServlet.service(Ljavax/servlet/ServletRequest;Ljavax/ser 
    vlet/ServletResponse;)V+0 (HelloWorldServlet.java:29) + more stack trace... 在版本 3.02 中,有一个缺陷,当调用小服务程序已从响应对象获得 ServletOutputStream 或 PrintWriter 时, RequestDispatcher.forward 方法应已抛出一个 IllegalStateException。 但由于有缺陷,而未生成此异常。根据 Sun 规范: 
    forward 
    public void forward(ServletRequest request, ServletReponse response) throws ServletException, IOException; 它用于将来自此小服务程序的请求转发至 Web 服务器上的另一资源。 当一个小服务程序对请求进行初步处理并想要让另一对象生成该响应时,此方法很有用。 传送至目标对象的请求对象将调整自己的请求 URL 路径和其他路径参数,以反映目标对象的目标 URL 路径。 若已从响应中获得 ServletOutputStream 对象或 PrintWriter 对象,则不能使用此方法。 在这种情况下,该方法抛出 IllegalStateException。 
    示例代码: 
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 
        PrintWriter out = res.getWriter(); 
        out.println(message); 
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/myHello.jsp"); 
        rd.forward(req, res); 
    } 现在,WebSphere 的当前版本根据 Sun 规范抛出 IllegalStateException。 
    若在从资源中获得 ServletOutputStream 或 PrintWriter 之后,由于有缺陷,应用程序通过转发(或某个 API 或上述流程)一直在运行,则该应用程序可能会中断,因为现在正在抛出该异常。 
    在安装 WebSphere Application Server AS/400 V3.5 之前,检查应用程序中的流程,以获取可能使用该转发的位置,并检查是否已从调用小服务程序获得 PrintWriter 或 ServletOutputStream。 
    在具有新产品版本的不同系统上测试该应用程序之前,不要在产生系统上安装 V3.5。 javax.servlet.http包
    httpsession接口 4、getMaxInactiveIntervalpublic int getMaxInactiveInterval();
       返加一个秒数,这个秒数表示客户端在不发出请求时,session被Servlet引擎维持的最长时间。在这个时间之后,Servlet引擎可能被Servlet引擎终止。如果这个session不会被终止,这个方法返回-1。  当session无效后再调用这个方法会抛出一个IllegalStateException。
    5、getValuepublic Object getValue(String name);
       返回一个以给定的名字绑定到session上的对象。如果不存在这样的绑定,返回空值。  当session无效后再调用这个方法会抛出一个IllegalStateException。 6、getValueNamespublic String[] getValueNames();
       以一个数组返回绑定到session上的所有数据的名称。  当session无效后再调用这个方法会抛出一个IllegalStateException。8、isNewpublic boolean isNew();
       返回一个布尔值以判断这个session是不是新的。如果一个session已经被服务器建立但是还没有收到相应的客户端的请求,这个session将被认为是新的。这意味着,这个客户端还没有加入会话或没有被会话公认。在他发出下一个请求时还不能返回适当的session认证信息。  当session无效后再调用这个方法会抛出一个IllegalStateException。
    9、putValuepublic void putValue(String name, Object value);
       以给定的名字,绑定给定的对象到session中。已存在的同名的绑定会被重置。这时会调用HttpSessionBindingListener接口的valueBound方法。  当session无效后再调用这个方法会抛出一个IllegalStateException。10、removeValuepublic void removeValue(String name);
       取消给定名字的对象在session上的绑定。如果未找到给定名字的绑定的对象,这个方法什么出不做。 这时会调用HttpSessionBindingListener接口的valueUnbound方法。  当session无效后再调用这个方法会抛出一个IllegalStateException。