【问题标题】:How can I tell the browser to load a html file with a Java servlet?如何告诉浏览器使用 Java servlet 加载 html 文件?
【发布时间】:2013-11-05 13:53:43
【问题描述】:

这个想法是你可以向数据库中添加一些东西,它来自浏览器 -> java 代码 -> JSP -> java 代码 -> 数据库,然后你被重定向到包含你发送的信息的页面。 servlet 已就位,但我无法从 get 请求重定向到 HTML 页面。

我有一个 servlet 来 PrintWriter().print() Json 对象中的数据,但该 servlet 是从 HTML 页面中的 javascrit 调用的。如何发送 HTML 页面?我应该每行解析 HTML 页面和 PrintWriter().print() 吗?有没有更合适的方法?

请记住,直接从 JSP 发送 HTML 不是一种选择,我无法更改系统的结构。

编辑:对不起,我匆忙输入了。

作为序言,该系统类似于 StackOverflow,您可以提交一个“请求”,提示社区众包学习材料。

目前,系统的结构是浏览器端的 JS/HTML,通过 Java 编写的 API 与 mySQL DB 进行通信。 API 通过 JSP 与内部 Java API 通信以访问数据库。问题是我必须从 API 返回 Json 对象。我知道 JSP 本质上是无用的,我可以在没有 JSP 的情况下连接这两个 API,但这是大学一年级的项目,所以我别无选择。

当您使用 url /addrequest(或类似的)向数据库提交内容时,系统会将文本放入数据库,然后将您重定向到 /request/idnumber。当您访问 /request/* URL 时,另一个 servlet 运行。我希望这个 servlet 告诉浏览器打开我的“request_display.html”页面。然后那个页面的javascript会调用另一个url通过API获取Json对象,然后构建页面。

我不知道如何告诉浏览器打开一个 html 页面。我应该只解析 html 文件然后使用 response.GetWriter().print() 发送 HTML 吗?

【问题讨论】:

  • “直接从 JSP 发送 HTML”几乎就是 JSP 的设计目的。
  • 我什至不了解您的系统结构。 AFAICS 由于对 servlet 和 JSP 的误解,您遇到了设计问题,因此请发布一个示例,说明您拥有什么以及想要实现什么(最好是在代码中)。
  • 你认为JSP为什么没用?
  • 我只是顺便说一下,我可能错了。既然不能用JSP输出HTML(我特意不让),那在这个系统有什么用呢?我不需要它在外部和内部 API 之间进行通信。

标签: java html jsp servlets


【解决方案1】:

如果你在一个 Servlet 中:

response.sendRedirect("pathOf YourHTMLPage");

如果您在 JSP 页面中,请尝试使用表单或“a”元素。像这样:

<form action="nameOfYourServlet"></form>

<a href="nameOfYourServlet"></a>

【讨论】:

    【解决方案2】:

    无法真正理解您要查找的内容,但如果您想使用 servlet 将用户重定向到 html 页面,可以使用 response.sendRedirect("path to html");

    如果你的英语很难理解,如果你能通过一些代码解释就好了。

    【讨论】:

    • 这应该是评论而不是答案。
    • 我知道,这是一个建议:)。
    【解决方案3】:
    response.sendRedirect("redirect.html");
    

    另一种方式

    ServletContext sc = getServletContext();
    sc.getRequestDispatcher("/redirect.html").forward(request, response);
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 2010-12-09
      • 2011-06-27
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多