第二章
1 JSP 页面的基本结构
2 Java程序片
3 JSP指令标记
4 JSP动作标记
难点
2.1 JSP页面的基本结构
一个JSP页面可有5钟元素组合而成:
1)普通的HTML标记和Javascript标记
2)JSP标记,如指令标记、动作标记。
3)变量和方法的声明
4)Java程序片
5)Java表达式原理
一个JSP页面被第一次请求执行时,tomcat服务器首先将JSP页面转译成一个Java文件,再将这个Java文件编译生成字节码文件,然后通过执行字节码文件相应用户请求。
当多个用户请求一个JSP页面时,tomcat服务器为每个用户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应用户的请求。这些线程由tomcat服务器来管理,将CPU的使用权在各个线程之间快速切换,以保证每个线程都有机会执行字节码文件。字节码任务
把JSP页面中普通的HTML标记和Javascript标记,交给用户端浏览器执行显示。
JSP标记、方法的定义、Java程序片由服务器负责执行和处理,将需要显示的结果发送给用户端浏览器。
Java表达式由服务器负责计算,并将结果转化为字符,然后交给用户端浏览器负责显示。
下面的例子页面包含了5种元素,其中使用HTML的img标记显示一幅图像,使用Javascript显示客户端浏览的时间,使用Java程序片显示tomcat服务端的时间。
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<%@ page import="java.time.LocalTime" %>
<%! public int continueSum(int start,int end){ // 定义方法
int sum =0;
for(int i=start;i<=end;i++)
sum=sum+i;
return sum;
}
%>

<% //Java程序片:
LocalTime timeServer = LocalTime.now();
int hour = timeServer.getHour();
int minute =timeServer.getMinute();
int second = timeServer.getSecond();
int nano = timeServer.getNano() ;//纳秒。
int millisecond = nano/1000000;
out.print("服务器时间:
"+
hour+":"+minute+":"+second+":"+millisecond);
int start=1;
int end=100;
int sum=continueSum(start,end);
%>
从
<%= start %>
至
<%= end %>
的
连续和是:
<%= sum %>
2.2 声明变量和定义方法
在“<%!”和“%>”标记符号之间声明变量,定义方法以及定义类。在“<%!”和“%>”标记符号的
内容习惯上放在JSP页面指令之后,之前,也可以写在与之间。“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,标记符在JSP页面中所在的书写位置无关,但习惯上把“<%!”和“%>”标记符号写在JSP页面前面对于在“<%!”和“%>”标记符号之间定义方法,可以在Java程序片中调用该方法。方法内声明的变量只在该方法内有效,当方法被调用时,方法内声明的变量被分配内存,方法调用完毕后即可释放这些变量所占的内存。对于在“<%!”和“%>”标记符号中定义类,可以在Java程序片中使用该类创建对象。
tomcat服务器将JSP页面转译成Java文件时,将“<%!”和“%>”标记符之间声明的变量作为类的成员变量,这些变量占用的内存空间直到tomcat服务器关闭才释放。
当多个用户请求同一个JSP页面时,tomcat服务器为每个用户启动一个线程,这些线程由tomcat服务器来管理,这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
例子2_2利用成员变量被所有用户共享这一性质,实现一个简单的计数器。
例子2_3在“<%!”和“%>”之间定义了两个方法,然后在程序片中调用这两个方法。
2.3 Java程序片
在“<%”和“%>”插入Java代码一个Java页面可以有许多程序片在程序片中声明的变量被成作JSP页面的局部变量。局部变量的有效范围与其声明的位置有关,即局部变量在JSP页面后继的所有的程序片以及表达式部分内都有效。
可以将一个Java程序片分割成几个Java程序片,然后在这些Java程序片之间再插入其他标记元素。在程序片中插入HTML中的标记的技巧对于灵活显示数据是 非常重要的。
2.4 Java表达式
2.5 JSP中的注释
2.6 JSP指令标记
有两个 page include
<%@ 和 %>为完整的符号
04:53(未完)
2.7 JSP动作标记



