JSP脚本元素中《%%》,《%!%》,《%!%》与是什么?

时间:2024-05-22 16:45:47

想要知道jsp脚本元素,先了解jsp是怎么运行的

原理:

  1. 在jsp文件第一次被请求时,jsp引擎(容器)会把jsp文件转换成一个Servlet
  2. 如果在转换过程中发现语法错误,中断转换,向服务器和客户端返回错误信息。
  3. 转换成功后,Servlet容器加载由jsp转换过的Servlet类(.class文件)。
  4. 如果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();
    记住这一点,下面的作用范围就说的清楚了;
    JSP脚本元素中《%%》,《%!%》,《%!%》与是什么?

1.<%! %>声明语句

一般用于变量声明和方法定义;
在这里面写的代码,会被转化成Servlet放在index_jsp.java(参考上述图片)的类里面,这点区别<% %>,
在这里面声明的变量就是成员变量。
在这里面定义的方法就是成员方法。

2.<% %>脚本片段

定义局部变量,表达式,java代码;
在这里面定义的变量是局部变量,哪个局部呢,上图中的序号2 jspService() 这个方法里面
也就是说,在这里面所书写的代码,会对应添加到jspService()方法中。

3.<%= %>表达式

存放变量或者表达式;
直接将值输出到客户端。

最后在上一个图,更加直观区别<% %>与<%! %>;

JSP脚本元素中《%%》,《%!%》,《%!%》与是什么?