目录
2.1 JSP页面的基本结构
在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面。一个JSP页面可由5种元素组合而成:
1 普通的HTML标记和JavaScript标记
2 JSP标记,如指令标记,动作标记。
3 变量和方法的声明
4 Java程序片
5 Java表达式
2.2 声明变量和定义方法
在“<%!”和“%>”标记符号之间声明变量和定义方法。“<%!”和“%>”标记符号的内容习惯上放在JSP页面指令之后,<HTML>之前,也可以写在<HTML>与</HTML>之间。
1.声明变量
“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,与“<%!” “%>”标记符在JSP页面中所在的书写位置无关,但习惯上把“<%!”“%>”标记符写在JSP页面的前面。
例:
<%! int i = 666;
%>
2.定义方法和类
在“<%!”和“%>”标记符号之间定义方法后,可以在Java程序片中调用该方法。
例:
<%!
int sum(int x , int y){
return x+y;
}
%>
在“<%!”和“%>”标记符号之间定义类后,可以在Java程序片中使用该类创建对象。
例:
<%!
public class Num {
......
}
%>
2.3 Java程序片
Java程序片就是一段Java语句,可以在“<%”和“%>”之间插入Java程序片。
一个JSP页面可以有许多程序片,这些程序片将被 Tomcat服务器按顺序执行。在程序片中声明的变量称作JSP页面的局部变量。局部变量的有效范围与其声明的位置有关,即局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。
Java程序片可以写在<HTML>之前,也可以写在<HTML>和</HTML>之间或</HTML>之后。
例:
<%
int x = 6;
int y = 660;
z = sum(x , y);
out.println(z);
%>
2.4 Java表达式
可以在“<%=”和“%>”之间插入一个可求值的表达式(注意:不可插入语句,“<%=”是一个完整的符号,“<%”和“=”之间不要有空格)。
Java表达式可以写在<HTML>之前,也可以写在<HTML>和</HTML>之间或</HTML>之后。
例:
<%= x>y %>
<%= x+y+x%y %>
需要注意:在JSP页面中,表达式的值被表示成一个字符串的形式,即Tomcat服务器将表达式的结果转换成字符串,然后发送给用户的浏览器。因此,在编写JSP页面时,要把Java表达式按普通的文本来使用。
2.5 JSP中的注释
注释可以增强JSP页面的可读性,使JSP页面易于维护。JSP页面中的注释分为两种:
(1) HTML注释:在标记符号“<!--”和“-->”之间加入注释内容:
<!-- 注释内容 -->
(2) JSP注释:在标记符号“<%--”和“--%>”之间加入注释内容:
<%-- 注释内容 --%>
2.6JSP指令标记
2.6.1 page指令标记
page指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号或双引号括起来。
page指令的作用对整个JSP页面有效,与其书写的位置无关。习惯上把page指令写在JSP页面的最前面。
<%@ page 属性1 = “属性1的值” %>
<%@ page 属性2 = “属性2的值” %>
...
<%@ page 属性n = “属性n的值” %>
也可以用一个page指令指定多个属性的值,如:
<%@ page 属性1 = “属性1的值” 属性2 = “属性2的值” ... %>
page指令标记可以为contentType, import, language, session, buffer, autoFlush.isThreadSafe、pageEncoding、inform等属性指定值。
①contentType属性
<%@ page contentType = "text/html"%>
通过设置contentType属性的值让浏览器可以使用相应的解析器来解析JSP页面。
如果不使用page指令为contentType指定一个值,那么contentType属性默认值时"text/html"。JSP页面使用的page指令只能为contentType设置一个值,不允许两次使用page指令给contentType属性指定不同的值。
②pageEncoding属性
<%@ page pageEncoding = "utf-8"%>
pageEncoding属性的默认值是UTF-8。需要注意的是,和contentType的附加属性charset的值意义不同,pageEncoding属性值是定义JSP页面使用的编码,即是告诉Tomcat服务器解析器用怎样的编码解析JSP页面中的字符。
③language属性
<%@ page language = "java"%>
language属性定义JSP页面使用的脚本语言,该属性的值目前只能取"java".
langueage属性的默认值是"java",即如果在JSP页面中没有使用page指令指定该属性的值,那么JSP默认language的值为默认值。
④import属性
<%@ page import = "java.util.*"%>
import属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部分、变量及方法定义部分以及表达式部分使用包中的类。
⑤session属性
session属性用于设置是否需要使用内置的session对象。session的属性值可以是true或false。seeion属性的默认值是true。
⑥buffer属性
<%@ page buffer = "24kb"%>
buffer属性用来指定out设置的缓冲区的大小或不适用缓冲区。buffer属性的默认值是8kb。buffer属性可以取值"none",即设置out不使用缓冲区.
⑦autoFlush属性
autoFlush属性指定out的缓冲区被填满是,缓冲区是否自动刷新。autoFlush可以取值true或false。autoFlush属性的默认值是true。当autoFlush属性取值false时,如果out的缓冲区填满,就会出现缓存溢出异常。当buffer的值时"none"时,autoFlush的值就不能设置成false。
⑧isThreadSafe属性
isThreadSafe属性用来设置访问JSP页面是否线程安全。isTreadSafe的属性值可取true或false。当isThreadSafe属性值设置为true时,JSP页面能同时响应多个用户的请求;当isThreadSafe属性值设置成false时,JSP页面同一时刻只能响应一个用户的请求,其他用户必须排队等待。isThreadSafe属性的默认值时true。
⑨info属性
<%@ page info = "常用的字符串"%>
info属性的属性值是一个字符串,其目的是为JSP页面准备一个常用但可能要经常修改的字符串。
2.6.2 include指令标记
如果需要在JSP页面内某处 整体嵌入一个文件,就可以考虑使用include指令标记,其格式如下:
<%@ include file = "文件的URL" %>
2.7 JSP动作标记
2.7.1include动作标记
include动作语法标记语法格式为:
<jsp:include page="文件的URL"/>
或
<jso:include page="文件的URL">
param子标记
</jsp:include>
注:当include动作标记不需要param子标记时,必须使用第一种形式。
2.7.2param动作标记
param标记以“名字-值”对的形式为其他标记提供附加信息,param标记不能独立使用,必须作为jsp:include,jsp:forward标记的子标记来使用。
param动作标记的语法格式是:
<jsp:param name="参数"value "参数的值"/ >
当该标记与jsp:include动作标记一起使用时,可以将param标记中参数的值传递到include动作标记要加载的文件中去,被加载的JSP文件可以使用Tomact服务器提供的request内置对象获取include动作标记param子标记中name给出的参数的值。
2.7.3forward动作标记
格式:
<>jsp:forward page="要转向的页面"/>
或
<jsp:forward page="要转向的页面"/>
param子标记
</jsp:forward>
该指令的作用是:从该指令处停止当前页面的执行,而转向执行page属性指定的JSP页面。当forward动作标记不需要param子标记时,必须使用第一种形式。
2.7.4useBean动作标记
用来创作并使用一个Javabean。
总结:本节主要讲了jsp页面的基本结构和几个重要的动作标记,要读懂并建立jsp页面程序,认识并熟用这些是必不可少的能力。
本文详细介绍了JSP页面的基本构成,包括声明变量和方法、Java程序片、表达式、注释、指令标记如contentType和pageEncoding的用法,以及include、forward和useBean等动作标记的功能。这些是理解和创建JSP页面的基础知识。

550

被折叠的 条评论
为什么被折叠?



