如何在Java Servlet中生成HTML响应?
最佳答案
通常,您将请求转发到JSP进行显示。 JSP是一种 View 技术,它提供了一个模板来编写普通的HTML / CSS / JS,并提供了在标签库和EL的帮助下与后端Java代码/变量进行交互的功能。您可以使用JSTL这样的标记库来控制页面流。您可以在请求, session 或应用程序范围中的任何范围内将任何后端数据设置为属性,并在JSP中使用EL(${}
事物)来访问/显示它们。您可以将JSP文件放在/WEB-INF
文件夹中,以防止用户直接调用它们而无需调用预处理servlet。
开球示例:
@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时,将显示讯息:Hello World
在浏览器中。
这样可以使Java代码免受HTML困惑的困扰,并大大提高了可维护性。要学习和实践更多有关servlet的知识,请继续以下链接。
也浏览the "Frequent" tab of all questions tagged [servlets]以查找常见问题。