在J中生成HTML响应

如何在Java Servlet中生成HTML响应?

ogechi nwogu asked 2020-02-12T16:53:47Z
2个解决方案
102 votes

通常,您将请求转发到JSP进行显示。 JSP是一种视图技术,它提供了一个模板,用于在其中编写普通的HTML / CSS / JS,并借助taglibs和EL与后端Java代码/变量进行交互。 您可以使用JSTL之类的标记库来控制页面流。 您可以将任何后端数据设置为请求,会话或应用程序范围中的任何一个的属性,并在JSP中使用EL(/WEB-INF/hello.jsp东西)来访问/显示它们。

开球示例:

@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String message = "Hello World";
        request.setAttribute("message", message); // This will be available as ${message}
        request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
    }

}

/WEB-INF/hello.jsp看起来像:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 2370960</title>
    </head>
    <body>
         <p>Message: ${message}</p>
    </body>
</html>

当打开[http:// localhost:8080 / contextpath / hello]时,将显示

Message: Hello World

在浏览器中。

这样可以使Java代码免受HTML混乱的困扰,并大大提高了可维护性。 要学习和实践更多有关servlet的知识,请继续以下链接。

  • 我们的Servlets Wiki页面
  • servlet如何工作? 实例化,会话,共享变量和多线程
  • Servlet中的doGet和doPost
  • 在页面加载时从JSP文件调用servlet
  • 提交HTML表单时如何将数据从JSP传输到servlet
  • 使用MVC和DAO模式在JSP页面的HTML中显示JDBC ResultSet
  • 如何使用Servlet和Ajax?
  • Servlet返回“ HTTP状态404请求的资源(/ Servlet)不可用”

还浏览所有标记为[servlets]的问题的“ Frequent”选项卡,以查找常见问题。

BalusC answered 2020-02-12T16:56:03Z
34 votes

您需要一个doGet方法为:

public void doGet(HttpServletRequest request,
        HttpServletResponse response)
throws IOException, ServletException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>Hola</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"white\">");
    out.println("</body>");
    out.println("</html>");
}

您可以看到此链接以获取简单的hello world servlet

codaddict answered 2020-02-12T16:56:43Z
translate from https://stackoverflow.com:/questions/2370960/generate-an-html-response-in-a-java-servlet