jsp中无法定时显示数据,因为没有事件来间隔50秒驱动这个页面,你的out.print( tag ); 只是打印第一次的值;可以使用HTML的定时刷新功能实现,<meta http-equiv="Refresh" content="1000;URL=页面名字">,也不用使用timer了

解决方案 »

  1.   

    <meta http-equiv="Refresh" content="1000;URL=页面名字">
    就可以了
      

  2.   

    jsp的定时器也是在客户端实现的!
    response.setIntHeader("refresh",1);//一秒刷新一次
      

  3.   

    用线程
    public void run() {
    try{
    while(true){
    ……//监听动态库
    Thread.sleep(3000);//三秒一次
    }
    }catch(Exception e){}
    }
      

  4.   

    to  beyond_xiruo:  (1)response.setIntHeader("refresh",1);//一秒刷新一次
      加到servlet里面吗?
      
      (2)用线程的话是做成servlet还是javabean呢?
       
      
      

  5.   

    我忘了Applet能不能用多线程,如果可以,那就用Applet实现好了。
      

  6.   

    1.
    在servlet的service方法里可以直接用,在javabean里只要将response作为参数传进去即可
    2.
    建议在servlet里使用
    implements Runnable
    然后写run方法
      

  7.   

    如在servlet或jsp这样调用javabean的方法
    myJavaBean bean=new myJavaBean();//servlet
    <jsp:useBean id="bean" scope="page" class="myPackage.myJavaBean" /><!--jsp-->
    这样引用bean.muFunction(response);
    然后在myJavaBean里这样写
    public void myFunction(javax.servlet.http.HttpServletResponse response) {
    response.setIntHeader("Refresh",1);
    }
      

  8.   

    第一种方法已经做出来了,可是我想让这个监听程序在后台运行,也就是如果得到的函数值不为空时,我就转到某个页面,是不是用第二种方法比较好呢?如果作成servlet的话,能不能让我控制它在什么时候开始监听呢,请问能实现吗?
      

  9.   

    servlet 是不是在tomcat启动时加呀,怎样才能达到监听效果呢?本人对servlet编程不太熟悉,请大家帮忙呀!
      

  10.   

    啥时候结贴呀:)
    在web.xml里的<web-app>和</web-app>之间加上
      <servlet>
        <servlet-name>yourservlet</servlet-name>
        <servlet-class>yourservlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
    就会在启动服务器的时候自动加载这个servlet
      

  11.   

    to  beyond_xiruo:(1)那么我在servlet里加了定时器以后,它是不是一直都在监听呢,还是只有刚开始就监听呢?(2)我写的servlet程序如下:
    import java.io.*;
    import mis.connectWiz.loadLib;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class getTag extends HttpServlet implements Runnable
    {
        Thread th1;
        public static String tag;
        public void doGet(HttpServletRequest request,
                          HttpServletResponse response)
            throws IOException, ServletException
        {
        }
        public void start()
        {
            th1 = new Thread( this, "myThread" );
            th1.start();
        }
        
        public void run()
        {
            try{
                while(true){
                    loadLib lib = new loadLib();
                    if ( lib.ConnectMMI() == false )
                        ;
            else
            {
                        tag = lib.GetActTagName( "" );
                    }
                    Thread.sleep(1000);
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }      
    }
    web.xml如下:
        <servlet>
            <servlet-name>getTag</servlet-name>
            <servlet-class>mis.connectWiz.getTag</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>getTag</servlet-name>
            <url-pattern>/getTag</url-pattern>
        </servlet-mapping>
    为什么tomcat启动不起来呢,是不是我写的有问题?(3)我怎么从servlet里判断得到的函数值不为空的话,从而转向另外一个界面呢。拜托,再帮帮忙,账一定结(不行,我再开贴给你加分)!!!
      

  12.   

    1,你什么时候调用什么时候临听
    2, <servlet>
            <servlet-name>getTag</servlet-name>
            <servlet-class>mis.connectWiz.getTag</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>getTag</servlet-name>
            <url-pattern>/servlet/getTag</url-pattern>
        </servlet-mapping>
    3,我也不知道
      

  13.   

    就会在启动服务器的时候自动加载这个servlet
    你在这个servlet里用线程定时监听
      

  14.   

    注:tomcat不能启动的问题已经解决
      

  15.   

    我的servlet是这样写的:
    public class getTag extends HttpServlet implements Runnable
    {
        Thread th1;
        public static String tag;
        public void doGet(HttpServletRequest request,
                          HttpServletResponse response)
            throws IOException, ServletException
        {
        }
        public void doPost( HttpServletRequest request, 
                            HttpServletResponse response )
            throws IOException, ServletException
        {
         doGet( request, response );
         if ( !tag.equals( "NULL" ) )
         response.sendRedirect( "http://localhost:8080/hj/login/login.jsp" );
        }
        
        
        public void start()
        {
            th1 = new Thread( this, "myThread" );
            th1.start();
        }
        
        public void run()
        {
            try{
                while(true){
                    loadLib lib = new loadLib();
                    if ( lib.ConnectMMI() == false )
                        ;
            else
            {
                        tag = lib.GetActTagName( "" );
                        
                    }
                    Thread.sleep(1000);
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }       
    }
    但是,我点击...,本应有反应,却没有反应,是不是应该打开一个新的页面,而不是用response.sendRedirect( "" );
    还是有其他问题呢?
      

  16.   

    if ( !tag.equals( "NULL" ) )
    -->
    if(tar!=null)
      

  17.   

    都不知道你要干啥
    public class getTag extends HttpServlet implements Runnable
    {
        Thread th1;
        public static String tag;
        public void doGet(HttpServletRequest request,
                          HttpServletResponse response)
            throws IOException, ServletException
        {
            doPost(request,response);
        }
        public void doPost( HttpServletRequest request, 
                            HttpServletResponse response )
            throws IOException, ServletException
        {
         if (tag!=null)
           response.sendRedirect( "http://localhost:8080/hj/login/login.jsp" );
             else
           response.sendRedirect( "http://localhost:8080/hj/login/unlogin.jsp" );
        }
        
        
        public void start()
        {
            th1 = new Thread( this, "myThread" );
            th1.start();
        }
        
        public void run()
        {
            try{
                while(true){
                    loadLib lib = new loadLib();
                    if ( lib.ConnectMMI() == false )
                        ;
            else
            {
                        tag = lib.GetActTagName( "" );
                        
                    }
                    Thread.sleep(1000);
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }       
    }