首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSP中显示消息

在JSP中显示消息
EN

Stack Overflow用户
提问于 2015-07-29 07:54:41
回答 1查看 1.3K关注 0票数 0

RMI程序正在远程计算机(RMI Server)上运行,我们通过Web应用程序(RMI客户端)调用这个程序。当RMI客户端调用RMI Server时,服务器实例化一个程序,结果通过简单的网络客户端代码发送回客户端。示例代码如下所示。

RMI服务器代码

代码语言:javascript
复制
try {
            if(monitor == null) return;
            monitor.stop();
            SimpleClient sc=new SimpleClient(client,1131,"`file Monitor stopped");
            //System.out.println("---aaaaa---");
            sc.sendMsg();
            System.out.println("Monitor stopped");
        }catch(Exception ex){
            ex.printStackTrace();
        }

RMI客户端代码

代码语言:javascript
复制
public static List plusOne003Test(String ipAddress, boolean isstopped) {
    ArrayList alist = null;
    try {
        System.out.println("All Plus one....plusOne003Test");
        Class testClass = Class.forName("PlusOneClient11");
        System.out.println("class Name::::::>"+testClass.getName());

        Method testMethod = testClass.getMethod("plusOne003Test",
                new Class[] { String.class,boolean.class});
        alist = (ArrayList) testMethod.invoke(testClass.newInstance(),ipAddress,isstopped);
        //System.out.println("ALIST::::::>"+alist);
        System.out.println("before create server");
        SimpleServer t=new SimpleServer(1131);
        t.start();
        Thread.sleep(10000);
        System.out.println("after create server");
        System.out.println("test3:::>" + alist.size());
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return alist;
}

接收来自RMI服务器的消息的网络代码

代码语言:javascript
复制
 public class SimpleServer extends Thread{
          private ServerSocket serverSocket;
          public SimpleServer(int port) throws IOException   {

   try{
       ServerSocketFactory ssf=ServerSocketFactory.getDefault();
       serverSocket=ssf.createServerSocket(port);
      }catch(BindException be){
       be.printStackTrace();
   }
}
public void run(){
  while(true)
  {
     try
     {
        System.out.println("Waiting for client on port " +
        serverSocket.getLocalPort() + "...");
        Socket server = serverSocket.accept();
        /*System.out.println("Just connected to "
              + server.getRemoteSocketAddress());*/
        DataInputStream in =
              new DataInputStream(server.getInputStream());
        String rec=in.readUTF();
        System.out.println("\n"+rec+"\n");
        if(rec.contains("`")){
            String rec1[]=rec.split("`");
            **JOptionPane.showMessageDialog(null, rec1[0]+"\n"+rec1[1]);**
            ----------------------------------------------------------------
        System.out.println("\n"+rec+"\n");

        }


     }catch(SocketTimeoutException s)
     {
         s.printStackTrace();
        System.out.println("Socket timed out!");

        break;
     }catch(IOException e)
     {
        e.printStackTrace();
        break;
     }
  }
}
}

代码JOptionPane.showMessageDialog(null,rec1+"\n"+rec11);消息需要显示在web应用程序警告消息中。

EN

回答 1

Stack Overflow用户

发布于 2015-07-29 08:12:35

在这种情况下,您需要理解服务器端(JSP、Servlet)和客户端(HTML、Javascript)代码之间的区别。JSP用于生成HTML代码,即它运行在服务器上,生成发送到浏览器的HTML,然后停止。因此,不可能将任何消息传递客户端的代码放入JSP中。

基本上,web技术是一种请求响应技术,通信是由客户端发起的.当然,也有实现服务器发起的通信的方法。我建议您看看HTML5 WebSockets (例如http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html),这应该是实现这种功能的最标准的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31694465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档