我有一个工作的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:出于技术原因,无法向对方进行简单的重定向。
答案 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();
}