-3

虽然知道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 页面中)。

它们可能是基本问题,任何人都可以帮助我理解它们吗?

4

2 回答 2

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

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

于 2016-08-09T13:20:15.247 回答
1

(安全缓存)。

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

3)有趣的问题。这都是一个解释的问题。如果您将其命名为 .jsp 或让您的 Web 容器以其他方式(取决于)将其作为 JSP 处理,那么您可以将其称为 JSP。

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

于 2016-08-09T13:19:34.690 回答