1. 指示元素,<%@指示元素 [属性=值]* %>
其中指示元素包括page, include, 和tablib三个。
其中 属性=值 可以有多对。
其中page用来告知容器如何转译目前的jsp页面,下面这三个是最常用到的page属性:
include用来将其他的jsp页面包含进来,比如可以把html的头和尾独立出来,然后在各种页面中都通过include指示元素把他包含进来。
jsp是静态的,是编译期间的指示符。例子如下:
后续还有<jsp:include xxx> 标签,这个是动态的,是运行时的。
默认情况下,容器会使用一个servlet对象来处理不同用户的请求,所以在jsp中编写的代码一定要注意线程安全问题。
2. 申明元素的语法:
<%! 类成员申明或者方法申明 %>
顾名思义,所谓申明元素就是用来在jsp文件中定义类成员变量或者方法的,在申明元素内的代码一般会被转译成servlet类的成员变量或者方法。例子如下:
3. ScriptLet元素,其语法如下,
<% java语句 %>
可以在其中写多个语句,所有在<% xxx %>内的语句都会被转译到_jspService()方法内部去了。
Scriptlet是可以被禁用掉的,可以在web.xml中配置, <scripting-invalid>true</scripting-invalid>
在网页上包含大量的scriptlet是不好的习惯,好的习惯是尽量el或者jstl标签来消除scriptlet;
示例代码如下:
4. 表达式元素
<%= xxxx %>
表达式运算的结果会直接作为网页的一部分,
比如 <%= new Date() %>
5. 三种不同类型的注释
#,java本身的注释,
#,html的注释, <!-- xxxx -->
#,jsp的注释, <%-- xxxxx --%>
#,有多种不同类型的隐式对象,他们只能在<% xxx %>, <%= xxxx %> 之间使用,不能再 <%! xxx %>内部使用,因为隐式对象其实就是_jspService方法内部的局部变量。
#,由于<% %>在jsp中有特殊的意义,所以如果想要在html界面上输出这两个符号,就需要使用转译字符
#,<% = <%
#,%>= %>