【问题标题】:Does JSP provide the dynamic behaviour to a web-page?JSP 是否为网页提供动态行为?
【发布时间】:2016-12-15 12:50:32
【问题描述】:

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

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

【问题讨论】:

  • 每个问题问一个问题更容易回答和/或查找重复问题。
  • 为什么不直接阅读任何 JSP 教程呢?我的意思是,你说你知道 JSP,但听起来你不知道它是什么,我觉得这很奇怪。
  • 感谢您的意见,我认为它们是相关的问题,这就是为什么要问这四个问题。我确实阅读了一些 JSP 教程,但我没有得到我的问题的答案,因此在这里提问。

标签: java jsp servlets web-container


【解决方案1】:

1) 如果它包含任何 JSP 元素,例如代码 sn-ps、JSP 标记等,则它是动态的。如果它仅包含 HTML,那么它是相当静态的,尽管如果它作为 JSP 处理,则计算常量响应在每次调用时动态地(安全缓存)。

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

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

4) 这个问题不太清楚。 sn-ps 在静态文本输出到此之后执行。

【讨论】:

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

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

    【讨论】:

    • 感谢您的回复。这样,如果我们在 jsp 文件中有 Javascript 代码,它最终会被放入容器生成的 java 文件中的 out.write() 中。当页面到达网络浏览器时,浏览器的javascript引擎会执行它。我希望它是正确的。
    猜你喜欢
    • 2019-11-28
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    相关资源
    最近更新 更多