【问题标题】:How to use TimerTask in Jsp page?如何在 Jsp 页面中使用 TimerTask?
【发布时间】:2014-04-30 05:04:17
【问题描述】:

您好,我正在尝试使用TimerTask 访问数组列表。我想在不同的 2 个子列表中获取数组列表值,然后想在 5 秒的时间间隔内打印 jsp 页面上的所有列表

这是我的代码:

ScheduledTask

import java.util.TimerTask;
import java.util.Date;
public class ScheduledTask extends TimerTask {
 public void run() {

    }
}

我的.jsp

 <%@ page import="Demo.ScheduledTask"%>
<html>
<head>

    <title>JSP Page</title>
</head>
<body>
  <jsp:useBean id="test" class="Demo.ScheduledTask" />
  <%

  Timer time = new Timer(); // Instantiate Timer Object
        ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class
        time.schedule(st, 0, 1000);
                    for (int i = 0; i <3; i++) {
            URL url;
        try {
            // get URL content

            String a = "http://122.160.81.37:8080/mandic/commoditywise?c=paddy";
            url = new URL(a);
            URLConnection conn = url.openConnection();

            // open the stream and put it into BufferedReader
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(conn.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String inputLine;
            ArrayList<String> list1 = new ArrayList<String>();
            ArrayList<String> list2 = new ArrayList<String>();
           List sublist1=null;
           List sublist2=null;
           List sublist3=null;
            while ((inputLine = br.readLine()) != null) {

                String s = inputLine.replace("|", "\n");

                s = s.replace("~", " ");
                //System.out.println(s);
                StringTokenizer str = new StringTokenizer(s);
                while (str.hasMoreTokens()) {
                    String mandi = str.nextElement().toString();
                    String price = str.nextElement().toString();
                    list1.add(mandi);
                    list2.add(price);

                }
            } sublist1=list1.subList(0, 15);
            sublist2=list1.subList(16,30);
             sublist3=list1.subList(31,45);
            String item1 = null;
            for (int l = 0; l < sublist1.size(); l++) 

            {
               out.println("List1"+sublist1.get(l));
            } 
            Thread.sleep(5000);
                for(int j=0;j<sublist2.size();j++)
                {
                   out.println("List2"+sublist2.get(j));

                }
                Thread.sleep(5000);
                for(int k=0;k<sublist2.size();k++){
                   out.println("List3"+sublist3.get(k));
            }
            Thread.sleep(5000);
           if (i == 2) 
            {
                out.println("Application Terminates");
                System.exit(0);
            }

            br.close();


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } 


        }
  %>

</body>
</html>

我怎样才能达到我想要的输出。

提前致谢

【问题讨论】:

标签: java jsp timertask


【解决方案1】:

猜你希望用户每 5 秒看到一次新内容,对吧?您不能在 JSP 中执行此操作,因为 JSP 正在生成发送到浏览器的 html 页面。它不在浏览器中执行。

你可以

  • 用 JavaScript 重写您的定时操作。这将在浏览器中执行。
  • 在 JavaScript 中设置一个 ajax 回调,该回调会定期调用以执行定时器任务中的内容并将结果发送到浏览器以更新 UI。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多