servlet本来就在后台一直运行,浏览器关闭了也运行,一般是直到服务器重起

解决方案 »

  1.   

    请问飞雪:那怎么实现一servlet一直在后台监听一socket套接口,一收到包就刷新一jsp页面 ,同时此servlet继续在后台监听此socket?请问怎么实现??????
      

  2.   

    在Servlet中使用response.sendRedirect(jsp);可以实现跳转到jsp页面啊,
      

  3.   

    转页面我知道,但你这样一转,那个servlet还会在继续监听socket吗?是不是已经停止运行了。
      

  4.   

    为什么要用 servlet 来监听 socket 呢
    那么服务器用来做什么?
      

  5.   

    一收到包就刷新一jsp页面 ??
    你可以不断的刷新页面,当收到包是改变输出的内容。
    servlet不会停止。。
      

  6.   

    To:telenths,我一定要监听socket,同时实时修改jsp页面的显示。请问不用servlet你有什么好办法?
    To:zhwquan,不断刷新页面还是有时间间隔的,我要实时改变页面显示。
      

  7.   

    多线程处理
    一个线程用于监听你的socket
    一旦有数据就唤起另一个线程刷新页面
      

  8.   

    请问阿宝:在servlet如何实现多线程,你能提供一些代码或思路吗?谢谢
      

  9.   

    书上说在启动Web应用程序时可以初始化servlet并加载有关servlet,这里的加载是不是自动运行的意思。Web应用程序里面的全局初始化的函数应该写在什么地方呢?VC里面有一个application init什么的函数,Web程序里是不是可以写在这个自动加载的servlet里面,他就会运行啊。
      

  10.   

    请问,servlet自动运行以后,当有socket包到达时,它会不会像纯java后台线程一样会被唤醒,去执行指定操作。
      

  11.   

    servlet也是纯java嘛,servlet有个init() 方法,在方法中把socket通讯的类初始化一下就可以了。。
      

  12.   

    servlet本身就是多线程的,不过不用理会就是了
      

  13.   

    servlet中可以使用多线程,但不能刷新客户端的页面, 你的问题有几种解决办法, 偶给你说一种:
    1. 在页面上放一个iframe,每隔一段时间刷新一次去请求servlet
    2. 取servlet返回值,当检查到servlet需要刷新父窗口时,用js刷新
    思路给你,自己实现吧
      

  14.   

    楼上老兄,我不能定时刷新,而必须实时刷新(即一收到包就刷新),这是老板的要求.能不能给我一些其它思路,不胜感激。
    再请问一下怎么用servlet写一个socket服务器端,一直在后台监听并接收socket包。唉,初学者,难啊....
      

  15.   

    你这个 socket 包是由谁产生的?或者说怎么产生的?
      

  16.   

    servlet 是由 http请求 调用的
    如果你想 监听端口 那么直接写一个 class 就好了 犯不着用 servlet
      

  17.   

    包 是 http请求的格式吗?
    http://XXXXXX.sss?xx=aa
      

  18.   

    import java.net.*;
    import java.io.*;public class SvrSocket implements Runnable{
      boolean loop = true;  ServerSocket SrvSocket;
      Socket sock;  public static void main(String args[]){
        (new Thread(new SvrSocket())).start();
      }  public SvrSocket() {
      }  public void run() {
        while(loop){
          try {
            SrvSocket = new ServerSocket(81);
            sock = SrvSocket.accept();        // 通过这个 sock 读取 包 的内容
            // 然后 做你需要做的事情 ...
                    
          }catch (IOException ex) {
            ex.printStackTrace();
          }
        }  }}
      

  19.   

    但是用一纯java类程序,我怎么收到包以后去刷新一jsp页面,好像java程序不能转到一jsp页面.
      

  20.   

    我不太清楚你的流程
    那个 VC 程序是什么角色?刷新jsp页面 的意思是什么? 是 更新页面的内容吗?
    还是 redirect ?
      

  21.   

    要实时的,可能只能用applet也servlet通讯了,当然也可以用applet调用rmi!不过还是前者简单一些哦
      

  22.   

    浏览器没有请求 怎么把页面送出去? 
    你想用 Push 技术吗?实时接socket包 没有问题
    但是 servlet 刷新页面 的前提也必须是有一个 http 请求才行的
      

  23.   

    我用sendRedirect不可以刷新页面吗?再问,怎么实现用servlet一直在后台监听socket端口,我就是搞不懂这个,能否给我在此贴一段完整代码,或发到我邮箱[email protected]   谢谢了
      

  24.   

    你必须清楚一点 服务器是不会主动向 浏览器提供页面的
    必须有浏览器的请求 Server才会有响应
    如果老板连这个都不知道的话 你可以向它说明所谓的 Push 技术 也是由 浏览器不断的刷新页面 来获得最新的 Page你现在可以让一个 java程序接收 VC 的数据包 然后修改 JSP 文件
    同时把 浏览器 刷新的时间改短一点
      

  25.   

    十分感谢telenths(_非法操作_) zhwquan(飞雪)等人的鼎力相助,我现在结贴了,可惜分不多,只能"礼轻情义重"了。