【问题标题】:Render HTML response from remote call to the client将远程调用的 HTML 响应渲染到客户端
【发布时间】:2014-05-02 09:48:26
【问题描述】:

我有一个来自这个模板的工作 servlet: http://www.objectdb.com/tutorial/jpa/eclipse/web/servlet

所以基本的往返行程有效。 我添加了一个新功能,我将数据发布到 servlet,从数据中构造一个调用/请求到远程 http 服务器,检索 response-html-string(我请求的网站的内容)并希望显示这个 HTML现在将字符串作为对我最初的 POST 调用的响应。

我试过这样:

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
        IOException {


    boolean showDetails = Boolean.valueOf(request.getParameter("showDetails"));
    if (showDetails) {
        String details = detailsLoader.loadDetails(String.valueOf(request.getParameter("value1")),
                String.valueOf(request.getParameter("value2")));

        response.getWriter().println(details);
        response.getWriter().flush();
        response.getWriter().close();
        return; // <----------------- if showDetails then this is the end of doPost
    }

    // Display the list of guests:
    doGet(request, response);
}

当我按下创建我在日志文件中看到的 POST 事件的链接时,“loadDetails”已成功从远程服务器加载内容,但浏览器窗口没有刷新。为什么?

PS:由于技术原因,无法简单地重定向到另一端。

【问题讨论】:

    标签: java http servlets


    【解决方案1】:

    尝试向您的 servlet 发出 ajax 请求,该请求将 html 内容作为字符串发送回 ajax 调用,并将其设置为 div 元素的 innerHTML

    【讨论】:

    • 我想了解为什么我的方法不起作用。我还希望有一个页面重新加载行为(如果可能),以便我可以“返回”到上一页。
    【解决方案2】:

    我改为使用 GET 而不是 POST,并为这种调用使用了单独的 Servlet。这解决了我的问题。

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        String details = detailsLoader.loadDetails(String.valueOf(request.getParameter("value1")),
                String.valueOf(request.getParameter("value2")));
    
        response.getWriter().println(details);
        response.getWriter().flush();
        response.getWriter().close();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2012-08-25
      • 2014-03-20
      • 1970-01-01
      • 2017-03-04
      相关资源
      最近更新 更多