实际上,JSP表达式也是Java代码,只是这些Java代码被放到了<%= ... %>中。JSP编译器在翻译JSP表达式时,直接将<%= ... %>中的内容作为Java变量或表达式使用println方法输出到客户端。也就是说,将<%= ... %>中的内容翻译成println方法的参数值,而不是直接插入到由翻译JSP生成的Servlet类中。看下面的JSP表达式:
<%= (3+4) * 5 %>
JSP编译器会将上面的JSP表达式翻译成如下的Java代码:
out.println((3+4) * 5);
要注意的是,<%= ... %>中的Java代码必须是println方法的参数的合法值,也就是说,如果将JSP表达式中的Java代码作为println方法的参数值,Java编译器会编译出错,那么该JSP表达式就是错误的。如不能在<%= ... %>中的Java代码后加分号(;)。