前言
在传统的HTML页面文件中嵌入脚本语言和JSP标签就构成了一个JSP页面文件。一个JSP页面可有5中元素组合而成。
一、JSP页面的基本结构
1.一个JSP页面由五个元素组成:
①普通HTML标记
②SP标记
③变量和方法的声明
④Java程序片
⑤Java表达式
当服务器上的 JSP 页面被第一次请求执行时,服务器上的 JSP 引擎首先将 JSP 页面文件转译成 Java 文件,再将 Java 文件编译,生成字节码文件,然后通过执行字节码文件响应客户的请求,这个字节码文件的任务如下。
把 JSP 页面中普通的 HTML 标记符号交给客户的浏览器执行并显示。
JSP 标签、数据和方法声明、Java 程序段由服务器负责执行,将需要显示的结果发送给客户的浏览器。
Java 表达式由服务器负责计算,并将结果转化为字符串,然后交给客户的浏览器负责显示。
二、声明变量和定义方法
在“<%!"和"%>"标记符号之间声明变量和定义方法,在“<%!"和"%>"标记符号的内容习惯放在JSP页面指令之后,<HTML>之前,也可以写在<HTML>与</HTML>之间。
1、声明变量
这里,“<%!”和“%>”之间声明的变量在整个 JSP 页面内都有效,因为 JSP 引擎将 JSP 页面转译成 Java 文件时,将这些变量作为类的成员变量,这些变量的内存空间直到服务器关闭才被释放。
当多个客户请求一个 JSP 页面时,JSP 引擎为每个客户启动一个线程,这些线程由 JSP 引擎服务器来管理。这些线程共享 JSP 页面的成员变量,因此任何一个用户对 JSP 页面成员变量操作的结果,都会影响到其他用户。
2、定义方法和类
可以在“<%!"和"%>"标记符号之间定义方法,可以在Java程序片中调用该方法。方法内声明变量只在该方法内有效。,当该方法被调用时,方法内声明的变量被分配内存,方法被调用完毕即可释放这些变量占用的内存。
可以“<%!"和"%>"标记符号之间定义类,可以在Java程序片中使用该类创建对象。
三、Java程序片
可以在“<%!"和"%>"标记符号之间插入Java程序片。一个JSP页面可以有许多Java程序片,这些程序片将被tomcat服务器按顺序执行。在程序片中声明的变量称作JSP页面的局部变量。局部变量的有效范围与其声明变量的位置有关,即局部变量在JSP也页面后继的所有程序片以及表达式部分内部有效。tomcat服务器将JSP页面编译成Java文件时,将各个程序片的这些变量作为某个方法的变量,即局部变量。
Java程序片可以写在<HTML>之前,也可以写在<HTML>和</HTML>之间或,/HTML>之后。当多个用户请求一个JSP页面时,tomcat服务器为每一个用户启动一个线程,该线程负责执行字节码文件响应用户的请求。
用法:
- 操作jsp页面的成员变量
- 调用jsp页面的方法
- 操作局部变量
<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body>
<p>
<%! int count=0; //被用户共享的count。
synchronized void setCount() { //synchronized修饰的方法。
count++;
}
%>
<% setCount();
out.println("您是第"+count+"个访问本站的客户");
%>
</p></body></HTML>
注意:一个jsp页面的Java程序片会按期在页面中的顺序被执行,而且某个Java程序中的局部变量在其后继的所有Java程序片以及表达式都有效
四、Java表达式
可以在“<%="和"%>"标记符号之间插入一个可求值的表达式(注意:不可插入语句,“<%="是一个完整的符号,"<%"和”=“之间不要有空格。)表达式的值由服务器负责运算,并将计算结果用字符串形式发送到用户端显示。 Java表达式可以写在<HTML>之前,也可以卸载<HTML>和</HTML>之间或</HTML>之后。 需要注意的是,在jsp页面中,表达式的值被表示为一个字符串的形式,即tomcat服务器将表达式的结果转换为字符串,然后发送给用户浏览器。因此,在编写jsp页面时,需要把java表达式按普通文本来使用。
<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=pink>
<% int x=12,y=9;
%>
<p style="font-family:宋体;font-size:36">
计算表达式x+y+x%y,即<%= x %>+<%= y %>+<%= x %>%<%= y %>的值:
<%= x+y+x%y %>
<br>计算表达式x>y即<%= x %> > <%= y %>的值:
<%= x>y %>
</p></body></HTML>
五、JSP指令标记
1、page指令标记
<%@ page 属性1="属性1的值"%>
<%@ page 属性2="属性2的值"%>
<%@ page 属性1="属性1的值"属性2="属性2的值"%>
①contentType属性,设置响应的MIME类型
<%@ page contentType="text/html"%>
②pageEncoding属性设置编码格式
<%@ page pageEncoding="utf-8"%>
③language属性
<%@ page language="java"%>
④import属性,为jsp页面引入Java运行环境提供的包中的类
<%@ page import="java.io.*"%>
⑤session属性,设置是否需要使用内置的session对象
2、include指令标记
在jsp页面整体嵌入一个文件
<%@ include file="文件的URL"%>
六、JSP动作标记
1、include动作标记
include动作标记语法格式为:
<jsp:include page="文件的URL"/>
或
<jsp:include page="文件的URL"/>
param子标记
<jsp:include>
需要注意的是,当include动作标记不需要param子标记时,必须运用第一种形式。
2、param动作标记
param标记以“名字-值”对的形式为其他标记提供附加信息,param标记不能独立使用,必须作为jsp:include、jsp:forward标记的子标记使用。
param动作标记格式为:
<jsp:param name="参数"value="参数的值"/>
3、forward动作标记
forward动作标记格式为:
<jsp:forward page="要转向的页面"/>
或
<jsp:forward page="要转向的页面"/>
param标记
<jsp:forward>
4、useBean动作标记
第五章详细解释(写不下去啦\(`Δ’)/)
七、小结
以上就是我要说的内容,以上简单介绍了JSP页面的结构、Java程序片以及表达式,其中重点是后面的指令标记和动作标记。