一、jsp声明<%! %>
用于声明变量和方法。似乎不需要定义类就可以直接定义方法,方法似乎可以脱离类独立存在。实际上,JSP声明将会转换成对应Servlet的成员变量或成员方法,因此JSP声明依然符合java语法
<%!
public int count;
public String info(){}
%>
jsp页面会编译成一个Servlet类,每个Servlet在容器中只有一个实例;在jsp中声明的变量是成员变量,成员变量只在创建实例时初始化,该变量值将一直保存,直到实例销毁。
二、输出jsp表达式<%= 表达式%>
输出表达式语法后不能有分号。
三、jsp脚本<% %>
注意,在jsp脚本中声明的变量是局部变量。不能使用private、public等访问控制符修饰,也不可使用static修饰。实际上jsp页面里脚本部分以及静态内容都由sevlet实例的_jspService方法里输出语句来输出。由于jsp脚本将转换成_jspService方法里的可执行性代码,而java语法不允许在方法里定义方法,所以jsp脚本里不能定义方法。