2.2 JSP运行机制
可以把执行JSP页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段。
转译阶段:JSP页面转换成Servlet类。
请求阶段:Servlet类执行,将响应结果发送至客户端。
下面来看JSP的执行流程示意图,示意图如图1-2所示。
1.用户(客户机)访问响应的JSP页面,如http://localhost:8080/HelloWorld/HelloWorld.jsp。
2.服务器找到相应的JSP页面。
3.服务器将JSP转译成Servlet的源代码。
4.服务器将Servlet源代码编译为class文件。
5.服务器将class文件加载到内存并执行。
6.服务器将class文件执行后生成HTML代码发送给客户机,客户机浏览器根据响应的HTML代码进行显示。
如果该JSP页面为第一次执行,那么会经过这两个阶段,而如果不是第一次执行,那么将只会执行请求阶段。这也是为什么第二次执行JSP页面时明显比第一次执行要要快的原因。
如果修改了JSP页面,那么服务器将发现到该修改,并重新执行转译阶段和请求阶段。这也是为什么修改页面后访问速度变慢的原因。
2.3 JSP脚本元素
JSP脚本元素包含JSP声明语句、JSP 脚本、JSP表达式。下面将详细介绍JSP脚本元素的语法格式以及使用方法。
2.3.1 JSP声明语句
JSP声明语句以<%!作为开始,以%>作为结束,其语法格式为:<%! 声明语句 %>。使用声明语句声明的变量为全局变量,也就是说如果有多个用户在执行此JSP页面时,将共享该变量。示例程序如下。
<html> <head> <title>DeclarationsDemo</title> </head> <body> <%! int a = 1; %> <% out.println("a = " + a); //打印输出a的变量值 a++; //变量a进行递加 %> </body> </html>
2.3.2 JSP脚本
JSP 脚本以<%作为开始,以%>作为结束,其中包含有效的符合Java语法规则的Java代码,其语法格式为:<% Java代码 %>。在JSP Scriptlets中可以包含多个语句,如:方法、变量、表达式等。示例程序如下。
<html> <head> <title>JavaScriptletsDemo</title> </head> <body> <% String str = "Java Scriptlets Demo"; //声明字符串str out.println(str); //输出字符串str %> </body> </html>
2.3.3 JSP表达式
JSP表达式通过<%=为开始,以%>结束,其语法格式为:<%= Java代码 %>。JSP表达式中的代码会首先执行,然后转换成字符串并显示到网页上。
<html> <head> <title>DeclarationsDemo</title> </head> <body> <% String str = "Hello"; //声明字符串str %> <%= str%> </body> </html>
JSP 表达式后面不能加 ;
2.4 注释
JSP的注释分为两类,一类为可以在客户端显示的注释,即HTML注释;一类是不能在客户端显示的注释,即JSP注释。
HTML注释使用<!--作为开始,以-->作为结束,中间包含的代码即为注释部分。
JSP注释使用<%- -作为开始,以--%>作为结束,中间包含的代码即为注释部分。
文章的内容来自百度文库 ----JSP基础语法.ppt.