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

问在DIV中显示流
EN

Stack Overflow用户
提问于 2014-03-14 09:37:19
回答 1查看 172关注 0票数 1

我正在通过servlet运行一些终端(或命令提示符)命令,如下所示

代码语言:javascript
复制
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
   {
    String[] command =
        {
      "zsh"
          };
                Process p = Runtime.getRuntime().exec(command);
                new Thread(new SyncPipe(p.getErrorStream(), response.getOutputStream())).start();
                new Thread(new SyncPipe(p.getInputStream(), response.getOutputStream())).start();
                PrintWriter stdin = new PrintWriter(p.getOutputStream());
                stdin.println("source ./taxenv/bin/activate");
                stdin.println("python runner.py");
                stdin.close();
                int returnCode = 0;
                try {
                    returnCode = p.waitFor();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } System.out.println("Return code = " + returnCode);
    }
    class SyncPipe implements Runnable
    {
    public SyncPipe(InputStream istrm, OutputStream ostrm) {
          istrm_ = istrm;
          ostrm_ = ostrm;
      }
      public void run() {
          try
          {
              final byte[] buffer = new byte[1024];
              for (int length = 0; (length = istrm_.read(buffer)) != -1; )
              {
                  ostrm_.write(buffer, 0, length);
              }
          }
          catch (Exception e)
          {
              e.printStackTrace();
          }
      }
      private final OutputStream ostrm_;
      private final InputStream istrm_;
    }

这是在新窗口中执行终端命令后显示结果,我希望避免这种情况,并将这些流值传回JSP页面,并在div中显示相同的结果。

怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 09:47:45

静态进口

首先,您可以使用<%=和%> (如在此解释和这里 )定义一个在此解释。

您可以静态地导入.jsp页面,而不是复制整个代码,如下所示:

代码语言:javascript
复制
<%@ include file="YourPage.jsp" %>

链接。

若要在运行时而不是在服务器端调用页面,请执行以下操作:

代码语言:javascript
复制
<jsp:include page="YourPage.jsp"/>

但与静态进口相比,这并没有带来巨大的优势。

链接

您还可以声明您的函数,然后通过使用<%!和%> (如在这里显示 )在整个网页中使用它。

如果您执行上述任何方法,您的函数将(只能)在页面最初加载时(服务器端)才被导入。(为了完全正确,理论上<jsp:include在运行时被调用,但在实践中它模拟一个请求,而不实际进行一个完整的往返:server > browser > server > browser)。

动态进口

对于动态导入或加载,您必须求助于jQuery (JavaScript)来加载您的JSP页面客户端。

请参考以下问题:点击链接的时候?

你可以简单地做:

代码语言:javascript
复制
function changeContent() {
    $('#content').load('YourPage.jsp');
}

您可以在这里找到其他示例:

引用最后一个链接的答案:

这与Ajax有关,Jquery可以做到这一点。您可以使用javascript getElementByID 或使用Jquery的build_in $("sub_banner") 语法来更改div的内容。

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

https://stackoverflow.com/questions/22401131

复制
相关文章

相似问题

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