从远程调用到客户端呈现HTML响应

时间:2014-05-02 09:48:26

标签: java http servlets

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

所以基本的rountrip有效。 我添加了一个新功能,我将数据发送到servlet,构建一个调用/请求数据到远程http服务器,检索响应-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事件的链接时,我在日志文件中看到,&#34; loadDetails&#34;已成功加载远程服务器中的内容,但浏览器窗口不刷新。为什么呢?

PS:出于技术原因,无法向对方进行简单的重定向。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我改为使用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();
}