第2章 JSP页面与JSP标记
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S J
P
2.6.1 page 指令_info属性
info属性的属性值是一个字符串,其目的是为JSP 页面准备一个常用且可能需要经常修改的字符串。
例如: <%@ page info= “we are students” %> 注:可以在JSP页面中使用方法: getServletInfo(); 获取info属性的属性值。
page 指令标记可以指定如下属性的值contentType、import、
属性1=“属性1的值”
属性2= “属性2的值”
……%>
属性1="属性1的值" %> 属性2="属性2的值" %> 属性n=“属性n的值” %>
page指令的作用对整个JSP页面有效,与其书写的位置无关,习惯把page指令 写在JSP页面的最前面。
S J
P
§2.5 JSP中的注释
-->
1. HTML注释格式 : <!-- 注释内容
发送到客户端的注释 <!-- jsp网页自身注释的内容 --> 客户端察看源代码可以看见
2. JSP注释格式: <%-- 注释内容 --%> Jsp网页自身注释
<%--
jsp网页自身注释的内容 --%> 用于描述JSP程序代码,不会被JSP引擎解释,也不会输送 到客户端
S J
P
如果写成 :<% int i; i++%> 会出现i没有初始化的错误
S J
P
§2.4 表达式
“<%=”和“%>”之间可以是一个Java表达
式 。 表达式不能以;结尾。 表达式的值由服务器负责计算,并将计算 结果用String形式发送到客户端显示。
例2-6 P17
i++;
number=new Integer(i); } %>
<P>您是第
<%=number.intValue()%> 个访问本站的客户。 </BODY> </HTML>
S J
P
2、声明方法
在“<%!”和“%>”之间声明方法,该 方法为jsp页面的成员方法,在整个JSP 页面有效。 该方法定义的变量在该方法内有效 这些方法将在java程序片中被调用。 也要注意多客户同时访问共享方法的处 理。( synchronize3.jsp:
<%@ page contentType=“text/html; charset=GB2312" %>
<HTML> <BODY> <%! int number=0;
synchronized void countPeople()
{ number++; } %> <% countPeople(); //调用方法 %> <P><P>您是第 <%=number%>个访问本站的客户。 </BODY></HTML>
注: autoFlush属性的默认值是true。当buffer属性取值 “none”,就不能将autoFlush设置为false。
S J
P
2.6.1 page 指令_isThreadSafe属性
isThreadSafe属性: 用来设置JSP页面是否可多线程访问。
注: isThreadSafe属性的默认值是true。
在<%! 和 %>标记符之间声明变量和方法 例:<%! int i = 0;%〉 <%! int a, b=100, c; String tom=null;jerry=“love JSP”; %>
S J
P
1、声明变量
<%! 和%>之间声明的变量在整个JSP页面内都有效 ,因此将这些变量称为JSP页面的成员变量。 因为JSP引擎将JSP页面转译成Java 文件时,将 这些变量作为类的成员变量。这些变量的内存空 间直到服务器关闭才释放。当多个客户请求一个 JSP页面时,JSP引擎为每个客户启动一个线程, 这些线程由JSP引擎服务器来管理,这些线程共 享JSP页面的成员变量,
例如: <%@ page import="java.io.*", "java.util.Date" %> 注:JSP页面默认import属性已经有
“ng.*”、 “javax.servlet.*”、
“javax.servlet.jsp.*”、
“javax.servlet.http.*”
S J
P
2.6.2 include 指令标记
include指令标记的作用是在JSP页面出现该指令 的位置处,静态插入一个文件。其语法格式如下:
<%@ include file= "文件的URL " %>
注:如果该文件和当前JSP页面在同一Web服务目录中,那么“文
件的URL”就是文件的名字; 如果该文件在JSP页面所在的Web服务目录的一个子目录中,比 如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。
S J
P
§2.3
Java程序片
在“<%”和“%>”之间插入Java程序片。 程序片中声明的变量称为JSP页面的局部变量。 多个客户请求一个JSP页面时 , Java程序片将被执 行多次,分别在不同的线程中执行 。运行在不同线 程的程序片局部变量互不影响。
例2-4 P15
S J
P
Jsp程序片
在这个例子中,可能发生两个客户同时 请求Ex1jsp页面。 将线程共享的变量放在一个 synchronized块,或将修改该变量的方 法用synchronized来修饰。 这样,当一个线程访问这个共享变量时 ,其它线程就必须等待,直到该线程执 行完该方法或同步块。 下面是对例子的改进Ex2.jsp。
S J
P
Ex1.jsp:
<%@ page contentType="text/html; charset=GB2312" %> <HTML>
<BODY BGCOLOR=cyan><FONT size=1>
<%!int i=0; %>
<%i++;
%> <P>您是第
<%=i%> 个访问本站的客户。 </BODY>
主要内容
• • • • • • • • •
• • •
难点
关键实践
S J
P
§2.1 JSP页面的基本结构
JSP页面可由5种元素组合而成: ① 普通的HTML标记符; ② JSP标记,如指令标记、动作标记; ③ 变量和方法的声明; ④ Java程序片; 例2-2 P13 ⑤ Java表达式 ;
JSP页面的运行原理:
<web应用程序设计>
第2章JSP页面与JSP标记
S J
P
第2章导读
JSP页面的基本结构 变量和方法的声明 Java程序片 表达式 JSP中的注释 JSP指令标记 JSP动作标记 Java程序片的运行原理 include指令标记与include动作标记
编写一个JSP页面,让该JSP页面包含5种基本的元素 编写含有JSP指令标记的JSP页面 编写含有JSP动作标记的JSP页面
S J
P
S J
P
S J
P
§2.6 JSP 指令标记
2.6.1 page 指令 page 指令用来定义整个JSP页面的一些属性和这些属性的值。
language、session、buffer、auotFlush 、isThreadSafe、pageEncoding。 其中只有import可以指定多值,其余属性只能指定一值。 例如: <%@ page 或 <%@ page <%@ page … … <%@ page
S J
P
2.6.1 page 指令__language属性
定义JSP页面使用的脚本语言,该属性 的值目前只能取"java"。
例如:
<%@ page
language="java" %>
注:JSP页面默认有如上page指令 。
S J
P
2.6.1 page 指令__ import 属性
该属性的作用是为JSP页面引入Java运行环 境提供的包中的类,这样就可以在JSP页面的 程序片部分、变量及函数声明部分、表达式部 分使用包中的类。
jsp程序片 %>
引擎按顺序执行。 有客户端请求时,在服务器端执行,执行结果输出到 客户端。 当多个客户请求一个JSP页面时,一个客户对JSP页面 局部变量操作的结果,不会影响到其他客户的这个局 部变量。 实现网页中的动态部分 <% ,%> 必须成对出现 使用JAVA语法
格式:<%
一个JSP页面可以有许多程序片,这些程序片将被JSP
注:程序片中的注释 <%//注释内容 %>
例2-7 P18
S J
P
JSP代码片中的一些转义字符
<% 写为 < % %> 写为 %> 或 %\> “ 写为 " 或 \” „ 写为 \‟ \ 写为 \\ & 写为 & 不断开空格(non-breaking space)  
把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。 JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行, 将需要显示的结果发送给客户的浏览器。 Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给 客户的浏览器负责显示。
S J
P
§2.2 变量和方法的声明
S J
P
2.6.1 page 指令_ session属性
用于设置是否需要使用内置的session对 象。session的属性值可以是true或false。 session属性默认的属性值是true。
参考:P84 §4.3 详细讲解
S J
P
2.6.1 page 指令_ buffer属性
内置输出流对象out负责将服务器的某些信 息或运行结果发送到客户端显示,buffer属 性用来指定out设置的缓冲区的大小或不使用 缓冲区。
注:静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP
页面,然后JSP引擎再将这个新的JSP页面转译成Java类文件。(即:编译 前合并。)
S J
P
使用include 指令标记时注意: 被插入的文件必须是可访问和可使用的 ,且和当前的JSP页面在同一web服务目 录中。 必须保证新合并的JSP页面符合JSP语法 规则。
</HTML>
S J
P
<%@ page contentType=“text/html; charset=GB2312" %> <HTML> <BODY> <%! Integer number=new Integer(0);
%>
<% synchronized(number) { int i=number.intValue();
S J
P
2.6.1 page 指令_contentType属性
contentType 属 性 值 确 定 JSP 页 面 响 应 的 MIME (Multipurpose Internet Mail Extention)类型和JSP 页面字符的编码。(简单说就是告诉客户端浏览器用哪种应 用程序处理服务器接收过来的信息) 例如: <%@ page contentType="text/html;charset=GB2312" %> <%@ page contentType="application/msword" %> 注:不允许两次使用page 指令给contentType属性指定 不同的属性值 . 例2-8 P21
例如:
<%@ page buffer= “24kb” %>
buffer属性的默认值是8kb 。 buffer属性可以取值“none”,设置out不使用缓 冲区。 参考:P96 §4.4 详细讲解out对象
S J
P
2.6.1 page 指令_ autoFlush属性
autoFlush属性: 指定out的缓冲区被填满时,缓冲区是否自动刷新。
例2-9,2-10 P24
S J
P
§2.7 JSP 动作标记
动作标记包括:
jsp:include指令 jsp:param指令 jsp:forward指令 jsp:plugin 指令 jsp:useBean指令
S J
P
§2.7 JSP 动作标记
2.7.1 include 动作标记
语法格式1: <jsp:include page= "文件的URL"/>
include动作标记告诉JSP页面动态加载一个文件。 注: include 动作标记是在JSP页面运行时才处理文件, 被处理的文件在逻辑和语法上独立于当前JSP页面。 例2-11 P27
S J
P
语法格式2:
<jsp:include page =url>
<jsp:parm name=“参数1” value=“值1” /> <jsp:parm name=“参数2” value=“值2” /> …… </jsp:include>