第3章 JSP标记
第三章JSP语法基础习题

第三章JSP语法基础习题第三章JSP语法基础习题一、选择题1.JSP的编译指令标记通常是指:()A)Page指令、Include指令和Taglib指令B)Page指令、Include指令和Plugin指令C)Forward指令、Include指令和Taglib指令D)Page指令、Param指令和Taglib指令2.可以在以下哪个()标记之间插入Java程序片?()A)<% 和%> B)<% 和/>C) D)<% 和!>3.下列哪一项不属于JSP动作指令标记?()A) B)C) D)4.JSP的Page编译指令的属性Language的默认值是:()A)Java B)CC)C#D)SQL5.JSP的哪个指令允许页面使用者自定义标签库?()A)Include指令B)Taglib指令C)Include指令D)Plugin指令6.可以在以下哪个()标记之间插入变量与方法声明?()A)<% 和%> B)<%!和%>C) D)<% 和!>7.能够替代<字符的替代字符是()?()A)< B)>C)< D)8.动作标记中,scope的值不可以是()。
A)page B)requestC)session D)response9.下列()注释为隐藏型注释。
()A)B)C)<%-- 注释内容--%>D)] -->10.下列变量声明在()范围内有效。
()<%! Date dateTime;int countNum;%>A)从定义开始处有效,客户之间不共享B)在整个页面内有效,客户之间不共享C)在整个页面内有效,被多个客户共享D)从定义开始处有效,被多个客户共享11.在“<%!”和“%>”标记之间声明的Java的方法称为页面的成员方法,其在()范围内有效。
A)从定义处之后有效。
B)在整个页面内有效。
精品JSP页面与JSP标记课件

一、页面(page)指令
•功能:设定整个JSP网页的属性和相关功能。 •<%@page • [ language="Script Language" ] • [ import="importList" ] [contentType="mimeType;charset=charact erSet" • | "text/html;charset=ISO-8859-1" ] • 注[ p:a除geimEnpcoordt属ing性=外"c,ha其ra他ct属er性Se只t"能] 在指0 2
• <!-- 以下字体的颜色为蓝色 -->
• <FONT size=3 color=blue>抽取字符 串"C:\my\ example.jsp"中的 "example.jsp"
• </FONT>
5
注释
1) HTML中的注释
格式:<!-- 注释 内容 -->
2) 隐藏注释
格 <%-- 注释 式3:) 脚内本容程序--的%>注释
<jsp:include>与include指令 区别
1)include指令静态包含文件, <jsp:include>动态包含文件。
2)include指令包含另外一个JSP页面 ,最终编译后的文件只有一个。 <jsp:include>动作标识包含文件时,程序 会将请求转发到被包含的页面,并将执行结 果输出到包含页,继续执行后面的代码。JSP 2 编译器会分别对这两个文件进行编译。 6
• <HTML><BODY bgcolor=cyan><Font size=4>
第3章 JSP语法

运行该段代码将生成下面的HTML代码: <a href="welcome.jsp">链接到welcome.jsp</a>
20
(3) 动态指定Form表单处理页面,例如下面的代码:
<% String name="logon.jsp"; %> <form action="<%=name%>"></form>
isErrorPage属性:将该属性值设为true,此时在当 前页面中可以使用exception异常对象。若在其他页 面中通过errorPage属性指定了该页面,则当前者出 现异常时,会跳转到该页面,并可在该页面中通过 exception对象输出错误信息。相反,如果将该属性 设置为false,则在当前页面中不能使用exception 对象。该属性默认值为false。 【例3-1】errorPage属性及isErrorPage属性的应14用
<!-- JSP表达式 -->
今天是:<%=today%>
<!-- HTML标记语言 -->
</center>
</body>
3
</html>
3.1.1 JSP中的指令标识 利用JSP指令可以使服务器按照指令的设置来执行
动作和设置在整个JSP页面范围内有效的属性。
<%@ page language="java" contentType="text/html; charset=gb2312" %>
[ isELIgnored="true|false" ]
第3章 JSP标记

在print.jsp中动态嵌入table.jsp页面 使用param动作标记向table.jsp传递两个整型 参数n=20,m=30 table.jsp获取两个参数的值的值,并画出n行 m列的表格。
5.动作标记forward
forward动作标记有两种格式:
<jsp:forward page="要转向的页面" /> 或 <jsp:forward page="要转向的页面" > param子标记 </jsp:forward>
参见例题3-1
2)属性import的值
作用:为JSP页面引入Java核心包中的类
这样就可以在JSP页面的程序片部分、变量及方法 声明部分、表达式部分使用包中的类。
特点:
import属性可以被指定多个值 page指令中的其余属性只能被指定一个值
参见例题3-1
2.指令标记include
语法格式:
<%@ include file= "文件的URL" %> .
课堂练习:
6.动作标记useBean
该标记用来创建并使用一个JavaBean,是 非常重要的一个动作标记,我们将在第5 章详细讨论 Sun公司倡导的是:
第3章:JSP基础语法

<1>、掌握JSP中注释语句的使用; <2>、掌握JSP中Script的使用及使用的区别; <3>、掌握page指令的作用; <4>、掌握两种包含语句及两种包含语句的 区别; <5>、掌握跳转指令的操作; <6>、可以使用JSP基础语法结合JDBC完成登 录程序的开发;
JSP注释分两种,一种是显示注释,这 种注释客户端是允许看见的;另一种是隐 式注释,这种注释客户端是无法看见的; 在JSP中最重要的就是Scriptlet脚本小 程序,所有嵌入在HTML代码中的java程序 都必须使用Scriptlet标记出来;在JSP中一 共提供了3中Scriptlet代码; 第一种:<%!%> 第二种:<%%> 第三种:<%=%>一定要明确记住字符 串的内容不可改变这一重要特征,一个 String对象内容的改变,实际上是通过内存 地址的“断开-连接”变化完成的,而本身 字符串的内容没有发生任何变化; 可以直接使用String类中的charAt方法 取出字符串指定位置的字符; 在String中使用indexOf方法可以返回 指定字符串的位置; 在
由于那种嵌入scriptlet的代码看起来很 乱,而且不易管理;所以我们应该使用 scriptlet标签指令 <jsp:scriptlet>这里可以定义一些变 量</jsp:scriptlet>; 在使用标签指令时一定要完结; 在JSP中,pageEncoding指的是jsp页 面本身的编码,而contentType中的charset 是服务器发给客户端的内容编码。
JSP语法与标签

第三章JSP语法页面的基本结构1.普通的HTML标记符2.J SP标签,如指令标签、动作标签3.变量和方法的声明<%!和%>4.J ava程序片<%和%>5.J ava表达式和<%=和%>尽量写注释,HTML注释:<!-- -->JSP注释:<%-- --%>指令标签:页面运行时的静态属性1、page指令标签,page指令格式:<%@ page 属性1=“属性1的值”属性2=“属性2的值”%>2、include指令标签include指令格式:<%@include file =“文件的名字“%>page指令标签:具有哪些具体的属性(字符集)属性:language,import,contentype,session,buffer,auotflush,isthreasafe其中:import属性的作用是为JSP页面引入java核心包中的类。
session属性用于设置是否需要使用内置的session对象。
buffer属性用来指定设置的缓冲区的大小或不使用缓冲区。
内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示。
auotflush属性指定out的缓冲区被填满时,缓冲区是否自动刷新isthreasafe用来设置页面是否可多线程访问include指令标签:如果在JSP页面内某处整体嵌入一个文件,就可以使用这个指令,该指令的作用是在JSP页面出现该指令的位置处,静态插入一个文件(被插入的文件必须是可访问和可使用的)该文件必须和当前JSP页面在同一个WEB目录中。
所谓静态的插入就是当前的页面与那插入的部分合并成一个新的页面,然后又JSP引擎再将这个新的JSP页面转译成JA VA类文件,必须保证新合成的页面符合JSP语法规则。
动作标签:影响JSP运行时的功能。
Include 动作标签:<jsp:include page = “文件的名字”/>或<jsp:include page = “文件的名字”></jsp:include>该动作标签告诉JSP页面动态包含一个文件,即JSP页面运行时才将文件加入。
第3章JSP标记

使用errorPage指令捕获异常
divArith.jsp <%@ page errorPage="divError.jsp“ pageEncoding=GBK"%> <% int dividend = 8; int divisor = 0; int result = 0; try { result= dividend/divisor ; }
显示结果:
hello str hello temp
include动作举例
aa.jsp <% String str = "aaa"; %> <jsp:include page=“bb.jsp" /> <%=str%> bb.jsp <% str = str + "bb";%>
结果:无法编译(str cannot be resolved )
相应的class文件 被加载执行阶段
在JSP页面运行期间处理所包含的文件 。
处理的文件如果不是JSP文件,就将文件的 内容发送到客户端,由客户端负责执行并显 示; 如果包含的文件是JSP文件,那么Tomcat服 务器就执行这个JSP文件,然后将结果发送 到客户端显示
JSP页面与所包含的文件在逻辑上和语 法上是独立的
指令标记include
example3_2.jsp
<BODY><HTML> 这里是example3_2.jsp <%@ include file = “hello.txt”%> 这里是example3_2.jsp </HTML> </BODY>
实验三JSP指令标记

实验三JSP指令标记实验三 JSP指令标记实验性质:验证性实验学时: 1学时实验地点:⼀、实验⽬的与要求1、掌握集成开发⼯具MyEclipse的使⽤。
2、掌握常⽤JSP指令标记的使⽤。
⼆、实验内容1、page指令的使⽤(1)是否允许JSP页⾯同时含有如下两条page指令:<%@ page contentType="text/html; charset=gb2312" %><%@ page contentType="application/msword" %>回答:不允许为什么?contentType属性不可以重复定义(2)是否允许JSP页⾯同时含有如下两条page指令:<%@ page import="java.util.*" %><%@ page import="java.sql.*" %>回答:允许为什么?Import属性可以多次定义2、include指令的使⽤(1)编写⼀个名为includeCopyRight.jsp的页⾯,页⾯的浏览效果如下:要求“2016”这个值可以实现动态更新。
请写出页⾯代码:1 <%@ page language="java" contentType="text/html; charset=UTF-8" %>2 <%@ page import="java.util.Date,java.text.SimpleDateFormat"%>3<html>4<body>5 <%6Date date=new Date();7 SimpleDateFormat from=new SimpleDateFormat("yyyy");8String nowTime=from.format(date);9 out.print("<p style='text-align:center'>颜志军()版权所有2010-"+nowTime+"</p>");10 %>11</body>12</html>(2)编写名为shiyan3_2_1.jsp和shiyan3_2_2.jsp两个JSP页⾯,页⾯内容⾃定,但要求使⽤include指令将includeCopyRight.jsp页⾯中显⽰的版权信息包含进example3_2_1.jsp和example3_2_2.jsp页⾯中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10 . Tag标记的使用
JSP页面必须使用<taglib>指令标记引入标记 库,只有这样,JSP页面才可以使用Tag标记调 用相应的Tag文件。<taglib>指令的格式如下: <%@ taglib tagdir=“自定义标记库的位置” prefix=“前缀”> Tag文件存放到Tomcat服务器指定的目录中, 即存放到“Web服务目录\WEB-INF\tags”中。 其中的WEB-INF和tags都是固定的子目录名称, 而tags下的子目录名字可由用户给定。
3.指令标记include
1.语法如下: <%@ include file= "文件的URL" %> . 2.作用是在JSP页面上出现该指令的位置 处静态嵌入一个文件 .
中信联信息技术有限公司
<%@ page contentType="text/html;Charset=GB2312" %> <html><BODY bgcolor=yellow> <H1> <%@ include file="Hello.txt" %> </H1> </BODY></HTML>
中信联信息技术有限公司
num2.jsp <%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY bgcolor=cyan > <% String str=request.getParameter("item"); //获取值param标记中name 属性的值 int n=Integer.parseInt(str); out.println("<BR>不大于"+n+"奇数:</BR>"); for(int i=1;i<=n;i++) { if(i%2!=0) out.println(","+i); } %> </BODY></HTML>
中信联信息技术有限公司
<p>这是一个Tab文件负责计算20内的素数: <% int i,j; for(i=1;i<=20;i++) { for(j=2;j<i;j++) { if(i%j==0) break; } if(j==i) out.println("<BR>素数:"+i); } %>
中信联信息技术有限公司
中信联信息技术有限公司
FirstTag.tag <html><body> <p>这是一个Tab文件,负责计算1至100的连 续和 <% int sum=0,i=1; for(i=1;i<=100;i++) { sum=sum+i; } out.println(sum); %> </body></html>
中信联信息技术有限公司
example3_4.jsp <%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY bgcolor=yellow> <P>加载一个jsp文件,该文件负责计算连续整数 之和: <jsp:include page="computer.jsp"> <jsp:param name="item" value="100" /> </jsp:include> </BODY></HTML>
中信联信息技术有限公司
num1.jsp <%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY bgcolor=cyan > <% String str=request.getParameter("item"); //获取值param标记中name属 性的值 int n=Integer.parseInt(str); out.println("<BR>不大于"+n+"的素数:</BR>"); int i=0,j=0; for(i=1;i<=n;i++) { for(j=2;j<i;j++) { if(i%j==0) break; } if(j==i) out.println(","+i); } %> </BODY></HTML>
中信联信息技术有限公司
6. 动作标记forward
1. forward动作标记有两种格式:
<jsp:forward page="要转向的页面" />
或
<jsp:forward page="要转向的页面" > param子标记 </jsp:forward>
2.作用是,从该标记出现处停止当前JSP页面的继续执行,
而转向执行forward动作标记中page属性所指定的JSP页 面。
中信联信息技术有限公司
example3_5.jsp <%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY > <% out.println("根据不同的值转向不同的页面:<BR>"); int n=(int)(Math.random()*100)+1; if(n>50) { %> <jsp:forward page="num1.jsp" > <jsp:param name="item" value="<%= n %>" /> </jsp:forward> <% } else { %> <jsp:forward page="num2.jsp" > <jsp:param name="item" value="<%= n %>" /> </jsp:forward> <% } out.println("看不见这句话"); %> </BODY></HTML>
中信联信息技术有限公司
computer.jsp <%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY> <% String str=request.getParameter("item"); //获取值param标记中 name属性的值 int n=Integer.parseInt(str); int sum=0; for(insum+i; } out.println("<BR>从1到"+n+"的连续和是:</BR>"+sum); %> </BODY></HTML>
中信联信息技术有限公司
<%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY BGCOLOR=cyan> <FONT Size=3> <P>我在学习page指令 </FONT></BODY></HTML>
中信联信息技术有限公司
中信联信息技术有限公司
5.动作标记param
1. param动作标记的格式如下:
<jsp:param name="名字" value="指定 给name属性的值" /> .
2.param动作标记可以作为include、
forward动作标记的子标记来使用, 该标记以“名字-值”对的形式为这 些动作标记提供附加信息。
中信联信息技术有限公司
7.动作标记useBean
该标记用来创建并使用一个 JavaBean,是非常重要的一个动作标 记,我们将在第5章详细讨论。Sun公 司倡导的是:用HTML完成JSP页面的 静态部分,用JavaBean完成动态部分, 实现真正意义上的静态与动态的分隔。
中信联信息技术有限公司
8. Tag文件与Tag标记 Tag文件是扩展名为 .tag的文本文件, 其结构几乎和JSP文件相同,只是扩展 名不同而已。 一个Tag文件对应一个标记,习惯 上称为Tag标记。若干个Tag标记可以 组成一个标记库,习惯上称为自定义 标记库。
中信联信息技术有限公司 <p>这是一个Tab文件,负责计算三角形的面积: <%@ attribute name="sideA" required="true" %> <%@ attribute name="sideB" required="true" %> <%@ attribute name="sideC" required="true" %> <%! public String getArea(double a,double b,double c) { if(a+b>c&&a+c>b&&c+b>a) { double p=(a+b+c)/2.0; double area=Math.sqrt(p*(p-a)*(p-b)*(p-c)) ; return "<BR>三角形的面积:"+area; } else { return("<BR>"+a+","+b+","+c+"不能构成一个三角形,无法计算面积"); } } %> <% out.println("<Br>jsp页面传递过来的三边:"+sideA+","+sideB+","+sideC); double a=Double.parseDouble(sideA); double b=Double.parseDouble(sideB); double c=Double.parseDouble(sideC); out.println(getArea(a,b,c)); %>