Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA尝试使用简单调度程序(计时器、TimerTask)在JSP页面上打印后获取IOException。需要帮助吗_Java_Jsp_Ioexception_Timertask - Fatal编程技术网

JAVA尝试使用简单调度程序(计时器、TimerTask)在JSP页面上打印后获取IOException。需要帮助吗

JAVA尝试使用简单调度程序(计时器、TimerTask)在JSP页面上打印后获取IOException。需要帮助吗,java,jsp,ioexception,timertask,Java,Jsp,Ioexception,Timertask,我正在尝试使用Timer和TimerTask类创建简单的调度器。请参阅下面的代码,在任务内部,我只想在页面上打印“Hello,World!”,但它抛出IOException:Stream closed。请帮忙 JSP页面代码: <% Test t = new Test(out);%> LpdbTask代码: public class LpdbTask extends TimerTask{ public JspWriter out; public void run()

我正在尝试使用Timer和TimerTask类创建简单的调度器。请参阅下面的代码,在任务内部,我只想在页面上打印“Hello,World!”,但它抛出IOException:Stream closed。请帮忙

JSP页面代码:

<% Test t = new Test(out);%>
LpdbTask代码:

public class LpdbTask extends TimerTask{
    public JspWriter out;
    public void run(){
        try {
            out.println("Hello, World!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
错误:

java.io.IOException: Stream closed
    at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:204)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:312)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:342)
    at org.apache.jasper.runtime.JspWriterImpl.print(JspWriterImpl.java:468)
    at org.apache.jasper.runtime.JspWriterImpl.println(JspWriterImpl.java:576)
    at scheduler.LpdbTask.run(LpdbTask.java:14)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)

JSP的Java代码在用户看到您的页面之前运行。当
定时器
触发时,JSP已经被发送到浏览器并呈现;由于不再需要,该流实际上已关闭。这是不可能做到的

如果您希望在用户浏览器中的页面上发生与时间相关的事情,那么您必须使用Javascript、Flash或Java小程序来完成;所有这些都在桌面上运行,而JSP则在服务器上运行

java.io.IOException: Stream closed
    at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:204)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:312)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:342)
    at org.apache.jasper.runtime.JspWriterImpl.print(JspWriterImpl.java:468)
    at org.apache.jasper.runtime.JspWriterImpl.println(JspWriterImpl.java:576)
    at scheduler.LpdbTask.run(LpdbTask.java:14)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)