写在前面
这一部分主要学习JSP的脚本元素。在JSP页面中有三种脚本元素(Scripting Elements):声明、小脚本和表达式。一个脚本程序是一个Java代码块, 以<%符号开始, 以%>符号结束。
表达式
每个表达式都会被JSP容器执行, 并使用隐式对象out的打印方法输出结果。 表达式以“<%=”开始, 并以“%>”结束。 表达式使用方法如下所示:
Today is <%=java.util.Calendar.getInstance().getTime()%>
注意, 表达式无须分号结尾。
这段代码中,JSP容器首先执行java.util.Calendar.getInstance().getTime(), 并将计算结果传递给out.print(), 这与如下脚本程序的效果一样:
Today is
<%
out.print(java.util.Calendar.getInstance().getTime());
%>
声明
可以声明能在JSP页面中使用的变量和方法。 声明以“<%!”开始, 并以“%>”结束。
可以使用声明来重写JSP页面, 实现类的init和destroy方法。 通过声明jspInit方法, 来重写init方法。 通过声明jspDestroy方法, 来重写destory方法。 这两种方法说明如下:
- jspInit。 这种方法类似于 javax.servlet.Servlet 的 init方法。 JSP 页面在初始化时调用jspInit。 不同于init方法, jspInit没有参数。 还可以通过隐式对象config访问ServletConfig对象。
- jspDestroy。 这种方法类似于Servlet的destroy方法,在JSP页面将被销毁时调用。
禁用脚本元素
随着JSP 2.0对表达式语言的加强, 推荐的实践是:在JSP页面中用EL访问服务器端对象且不写Java代码。因此, 从JSP 2.0起, 可以通过在部署描述符中的< jspproperty-group >定义一scripting-invalid元素, 来禁用脚本元素。
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>