想要知道jsp脚本元素,先了解jsp是怎么运行的
原理:
- 在jsp文件第一次被请求时,jsp引擎(容器)会把jsp文件转换成一个Servlet
- 如果在转换过程中发现语法错误,中断转换,向服务器和客户端返回错误信息。
- 转换成功后,Servlet容器加载由jsp转换过的Servlet类(.class文件)。
- 如果jsp文件被修改了服务器将根据设置决定是否对该文件重新编译。需要编译则重新编译的结果取代之前编译的结果。
构成:
下图是其中index.jsp编译成的Servlet文件构成
可以在E:\eclipse.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\text01\org\apache\jsp下找到
我们注意一下图中序号的1,2,3;
其实就是Servlet的生命周期
对应Init();Destroy();Service();
记住这一点,下面的作用范围就说的清楚了;
1.<%! %>声明语句
一般用于变量声明和方法定义;
在这里面写的代码,会被转化成Servlet放在index_jsp.java(参考上述图片)的类里面,这点区别<% %>,
在这里面声明的变量就是成员变量。
在这里面定义的方法就是成员方法。
2.<% %>脚本片段
定义局部变量,表达式,java代码;
在这里面定义的变量是局部变量,哪个局部呢,上图中的序号2 jspService() 这个方法里面
也就是说,在这里面所书写的代码,会对应添加到jspService()方法中。
3.<%= %>表达式
存放变量或者表达式;
直接将值输出到客户端。