HTML注释中插入JSP表达式

有时需要在客户端 HTML 源代码中输出一段注释,并在注释里插入 JSP 表达式。需要注意的是,HTML 注释会发送到浏览器端,因此用户在“查看源代码”时可以看到它;JSP 表达式则会先在服务器端求值,然后把结果写入响应。

Table of Contents

JSP 语法

<!-- comment [ <%= expression %> ] -->

这里的 <%= expression %> 是 JSP 表达式。只要表达式本身合法,就可以放在注释内容中。

例子 1

JSP 页面中写入普通 HTML 注释:

<!-- This file displays the user login screen -->

客户端看到的 HTML 源代码仍然是:

<!-- This file displays the user login screen -->

例子 2

在 HTML 注释中插入 JSP 表达式:

<!-- This page was loaded on <%= (new java.util.Date()).toLocaleString() %> -->

客户端看到的 HTML 源代码会变成求值后的内容,例如:

<!-- This page was loaded on January 1, 2000 -->

实际日期和格式取决于服务器运行时环境、区域设置以及表达式的返回值。现代 Java 代码中通常应避免继续使用已经过时的 Date#toLocaleString(),可以改用 java.time 或显式的日期格式化方式。

总结

这种写法本质上仍然是 HTML 注释,所以会出现在浏览器的“查看源代码”中。不同的是,JSP 表达式会在服务器端先执行,再把结果放进注释文本。

另外,/// ... / 也是常见注释形式,但它们属于 JavaScript 或 CSS 语法,不会作为 HTML 注释生效。HTML 注释应使用 <!-- ... -->

Leave a Reply