JSP 是否为网页提供动态行为?

Does JSP provide the dynamic behaviour to a web-page?

虽然知道JSP(基本了解),但对JSP技术有一些疑惑

考虑以下简单的 jsp:

<html>
    <head>
        <title> This is demo</title>
    </head>
    <body>
        <h1> The current time is <%=new java.util.Date()%> </h1>
    </body>
</html>

对此,我有一些疑惑(一直藏在心里):

1) 这个jsp的基本文字是一样的,是不是动态页面因为里面有JAVA代码?

2)当用户访问这个jsp页面时,容器是否先执行java代码并替换页面内部java代码的输出?

3) 是什么让这个页面成为 jsp 页面? html 和 java 代码的混合是否使其成为 jsp?

4) java 代码(在 <% %> 内)可以独立于 html 存在吗?或者它们是耦合的(java 代码必须出现在 html 页面中)。

可能是一些基础问题,谁能帮我理解一下?

1) 如果它包含任何 JSP 元素,如代码片段、JSP 标签等,它就是动态的。如果它只包含 HTML,那么它是相当静态的,尽管如果它作为 JSP 处理,然后在每次调用时动态计算常量响应(安全缓存)。

2) 是的,很像。实际上 JSP 的静态文本进入 Java class 中的 out.write() 语句;整个 JSP 被转译为 Java class.

3) 有趣的问题。这都是解释的问题。如果您将其命名为 .jsp 或让您的 Web 容器以其他方式(视情况而定)将其处理为 JSP,那么您可以将其称为 JSP。

4)这个问题不是很清楚。到目前为止,在输出静态文本后执行片段。

  1. 是的,它是动态的,因为它是在 运行 时间计算的(甚至是部分计算的)- 这里的 java 小脚本是动态部分
  2. 不完全是。 JSP 不是模板引擎。 JSP 页面完全转换为 java 源代码,然后由 servlet 容器编译为 class 文件。然后那些 classes 在 运行 时间被执行。
  3. 扩展名 .JSP 使其成为 JSP 文件。然后它必须遵循 JSP 语法才能被 servlet 容器正确处理。
  4. 反题。 Java 代码通常位于 java 源文件中。 servlet 容器可以将实现 HttpServlet 接口的 Java class 直接映射到 URL。 Java 代码 可以 位于 JSP
  5. 中的小脚本中

但正如您在评论中所说,在此处提问之前,您真的应该阅读相关文档。