ITEEDU

JSP/Servlet Gossip: 批注与Quoting

JSP网页中可以在<% 与 %>之间直接使用Java语法撰写程序,所以您也可以在当中使用Java的批注方式来撰写批注文件,也就是可以使用//或是/*与*/包括来撰写批注,例如:

<% 
// 这是Java的批注方式 
out.println("随便显示一段文字"); 
/* 
这是源自C的批注方式 
*/ 
%>

使用这样的批注方式,在转译为Servlet原始码之后,JSP <% 与 %>之间设定的批注,在Servlet原始码中对应的位置也会有对应的批注文字,虽然生成在Servlet中的批注对于纯使用JSP网页的开发人员 来说可能不具意义,但这个方式不失为观察生成的Servlet原始码的工具,当您想观察JSP转换为Servlet后的某些特定行,您可以使用这种批注方 式来当作一种标记,方便您直接看到转换后的程序代码位于哪一行。

JSP有一个专门设计给它使用的批注,即<%--与--%>,容器在转译JSP至Servlet时,会忽略<%--与--%>之间包括的文字,生成的Servlet中不会包括批注文字:

<html> 
<body> 
<%-- 显示现在时间 --%> 
Now Time: <%= new java.util.Date() %> 
</body> 
</html>

「显示现在时间」这一段文字,不会出现在Servlet中,当然也就不会输出至浏览器。

至于网页设计人员所使用的批注方式<!--与-->,严格说来并不是JSP的批注,对JSP来说,它只是HTML语法的一部份,在转译为Servlet之后,也只是像 out.write("<!-- 网页批注 -->"); 这样的陈述句,将之输出至客户端浏览器而已。

至于Quoting,简单的说,<% 与 %>被用来作为JSP中Java语法的部份,又称为称之为Scriptlet,如果您要在JSP网页中输出 <% 符号或 %>符号,不能直接写下<%或%>的符号,以免转译时被认为是Quoting,例如若JSP网页中包括下面这段,就会发生错误:

<% 
out.println("JSP中Java语法结束符号%>"); 
%> 

如果您要在JSP中输出 <% 符号,您要使用 &lt;%,而输出 %> 时,要使用 %\>,例如:

<% 
out.println("&lt;% 与 %\>被用来作为JSP中Java语法的部份");
%>

其实仔细观察 &lt; 对于HTML语法来说,也是为了避免浏览器误以为是标签的 < 而使用的一种替代字符,如此浏览器才会正确的显示 < 符号,同样的道理,您也可以让out.println()输出%&gt;来于网页上显示%>的符号。