02 JSP基本语法
第2章 JSP语法

五、Java控制结构
• 顺序结构 • 选择结构 • 循环结构
顺序结构
• 按设计时所确定的次序,一个一个语句的顺序执行 • 一般程序主体采用顺序结构,其中嵌套选择和循环结构。
选择结构控制
单选if、 双选if„else、 多选switch
if语句
if (条件表达式) 语句
条件?
True
例:
String x="男",s=""; if(x=="男") s="不能进入";
实践环节: 上机实战,验证结果
• 例3:利用Switch语句编程实现分数和等级的对应 • 0~59:E 60~70:D 70~80:C • 80~90:B 90~100:A
实践环节: 编写网页 exa2_14.jsp:表单页面,输入学生的成绩 exa2_15.jsp:根据成绩值显示成绩的等级
二、循环结构控制
知识点介绍
• 乱码问题: • ex9.jsp页面获取的信息可能是乱码(由很多?组 成),此时必须对含有汉子的字符进行特殊的处 理。
• 解决方案:在获取表单信息之前设置统一编码 • request.setCharacterEncoding("GBK");
• 例1写出程序 • • y= •
-1 0 1
案例
例1: int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; break; case 6: k=x/y; break; case 12: k=x-y; break; default: k=x*y-x; break; } 例2: char ch='A'; int r=6; switch( ch+5 ) { case 'A': r=r+3; break; case 'B': r=r+5; break; case 'C': r-=6; break; default : } r/=2;
JSP实验二-JSP基本语法

Java web应用编程基础实验报告实验2:JSP基本语法实验姓名:___ ____班级:______学号:____ _成绩:_____一、实验目的:●熟悉HTML语法,理解和掌握JSP基本语法。
●初步掌握JavaScript的使用●初步掌握利用指令、脚本元素和动作元素,进行简单的JSP和HTML混合编程的方法和技术。
二、实验要求:●理解Web Server,正确使用Apache的Tomcat建立JSP Server。
●编写程序完成以下实验内容,通过手工和MyEclipse两种方式分别完成JSP文件的布署。
●上交实验报告电子文档(文档包含源程序,以班级、学号、姓名依次出现组成的字符串标识文档,以班级为单位上交).三、实验内容:1、采用声明实现访问计数器count.jsp,并在页面中显示:“当前访问本网站的用户数为:**人/次。
"程序:〈%@ page language=”java" import="java.util.*" pageEncoding="GB2312”%〉〈html〉<head〉<title〉网页访问计数〈/title></head>〈body><%if (application。
getAttribute(”count")== null) {application。
setAttribute("count”, new Integer(0));}Integer count=(Integer)application.getAttribute("count");application。
setAttribute("count”, new Integer(count.intValue()+ 1));count=(Integer)application.getAttribute("count");%>〈center>你是第<%=count。
Jsp基本语法

Jsp基本语法Jsp语法分为3类:脚本元素、指令元素、动作元素。
jsp的脚本元素有以下4个:1. 隐藏注释:<%--这是客户端不可见的隐藏注释--%>2. 声明(declarations):<%!这是声明%>3. 脚本段(scriptlets):<%这是脚本段%>4. 表达式(expression):<%=这是表达式%>jsp的指令元素有以下3个:指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。
一、page指令功能:设定整个JSP网页的属性和相关功能。
语法:<%@ page attribute1="value1" attribute2="value2" %>标签元素:<jsp:directive.page attribute1="value1" attribute2="value2" />page指令元素的属性language="language" 指定JSP Container要用什么语言来编译JSP网页。
目前只可以使用Java语言,不过不排除增加其它语言。
默认值为Java。
extends="className" 定义此JSP页面产生的Servlet是继承自哪个父类。
必须为实现HttpJspPage接口的类。
JSP规范对不完全理解其隐意的情况下使用此属性提出警告。
import="importList" 定义此JSP页面可以使用哪些Java API。
用逗号分隔列出一个或多个全质类名。
此列表用于在生成的java servlet中创建相应的导入语句。
以下包是自动包含的,不必被指出:ng.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.*session="true|false" 指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet 将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
JSP基本语法

JSP脚本JSP通用语法规则JSP通用语法规则包括:JSP的标记规则、JSP元素中的相对路径规则、JSP元素中的转义规则。
JSP的标记规则每一个JSP元素都有一个起始标记和一个结束标记。
起始标记为“<%”或“<jsp:”,结束标记为“%>”或“/>”。
比如:<jsp:include page=”/index.jsp”/><%if(sum>0) sum=sum+42;%>注起始标记和结束标记一定要在同一个JSP页面中,且成对出现JSP元素中的相对路径规则在JSP中可以使用相对路径,相对路径是以字符“/“开头的。
比如:/test/testChinese.jsp——说的实际路径是“C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test\testChinese.jsp “JSP元素中的转义规则我们已经知道,“<%”和“%>”是JSP中的标记字符,那么如果我们想在程序中用到这两个字符,该怎么区分呢?这就要用到转移规则了。
这里的转义规则包括:“’”被转义为“\’”“””被转义为“\””“\”被转义为“\\”“<%”被转义为“<\%”“%>”被转义为“%\>”下面我们通过一个小例子来看看。
其显示结果如图2-2所示。
图2-2 JSP转义规则示例上面显示结果,可以看到,本来是JSP标记语言的字符,也都显示出来了,实现这样功能的程序代码是怎么样的呢?02-02.jsp文件源代码:<html><head><title>JSP转义规则的例子</title></head><%@page contentType="text/html;charset=gb2312" %><body><p><%out.print("测试要避免冲突的字符串1:\'");%><p><%out.print("测试要避免冲突的字符串2:\"");%><p><%out.print("测试要避免冲突的字符串3:\\");%><p><%out.print("测试要避免冲突的字符串4:%\>");%></p></body></html>JSP脚本元素语法讲了语法规则以后,我们来看看脚本元素,JSP中的脚本元素有四种:注释、声明、表达式和程序段。
第2章 JSP语法

<jsp :param name= »param2 »value= »value2 »/> </jsp:forward>
<jsp :param name= »param1 »value= »value1 »/>
小结
本章主要介绍了JSP页面的组成、指令、动作等技术,重点介绍 了JSP的page指令、include指令的使用,<jsp:include>、 <jsp:forward>等动作指令的使用。 通过本章的学习,读者可以建立一个简单功能的JSP网站。
1.page指令 page指令就是通过设置内部的多个属性来定义JSP文件中的全局 特性。需要注意的是,page指令只能对当前自身页面进行设置, 即每个页面都有自身的page指令。如果没有对属性进行设置, JSP将使用默认指令属性值。
2.include指令 在JSP开发中,可以将一些重用的代码写入一个单独的文件中, 然后通过include指令引用该文件,从而缓解代码的冗余问题, 修改也比较方便。Include指令语法格式为: <%@ include file=”被包含的文件路径”%>
扩展——代码编写规范
1.JSP文件命名 JSP文件名称要以小写字母命名,名称要体现出该页面的意义, 最好能够与模块名称联系在一起。 例如: login.jsp --登录页面 register.jsp --注册页面 message.jsp --消息页面
新知识点——JSP页面组成、声明、代码段、表达式、注释 JSP页面由两部分组成,一部分为静态部分,即HTML标记,用 来完成数据页面显示;另一部分为动态部分,用来完成数据处理, 包括脚本元素、指令元素和动作元素。 脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的 Servlet的一部分;JSP指令元素用来从整体上控制Servlet的结 构;动作元素用来引入现有的组件或者控制JSP引擎的行为。
第2章 JSP的基础语法

2.6 小结
本章详细介绍了什么是JSP,以及JSP具有哪些特点,还详细介绍了JSP的 运行机制。通过实例介绍了JSP声明语句、JSP Scriptlets、JSP表达式的 使用。
北京源智天下科技有限公司
1-11
联系方式:
北京源智天下科技有限公司
1-1
联系方式:
2.1 JSP简介
JSP是Java Server Pages的缩写,是由Sun Microsystem公司于 1999年6月推出的新技术。通过在传统的HTML中,利用插入JSP脚本代 码从而构成JSP页面。JSP是基于Java Servlet以及整个Java体系的Web 开发技术,利用这一技术来构建安全的、跨平台的动态Web站点,而且 目前在不断进行更新和优化。 如果读者对微软的ASP技术比较熟悉,应该知道ASP的编程语言 是VBScript和JavaScript,JSP使用的是Java。与ASP相比,在许多方面 有了大大的改进,具有动态页面与静态页面想分离,并摆脱系统平台的 束缚。JSP是通过编译后执行的,完全克服了ASP的脚本级解释执行的缺 点,目前以成为Web开发的主流选择。
2.4 注释
JSP的注释分为两类,一类为可以在客户端显示的注释,即HTML注释;一 类是不能在客户端显示的注释,即JSP注释。 HTML注释使用<!--作为开始,以-->作为结束,中间包含的代码即为注释部 分。 JSP注释使用<%- -作为开始,以--%>作为结束,中间包含的代码即为注释 部分。
北京源智天下科技有限公司
01 02 03 04 05 06 07 08 0lt;head> <title>JavaScriptletsDemo</title> </head> <body> <% String str = "Java Scriptlets Demo"; //声明字符串str out.println(str); //输出字符串str %> </body> </html>
第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 是服务器发给客户端的内容编码。
第2章 JSP语法基础 2.3 JSP指令元素、2.4 JSP动作元素

第2章 JSP语法基础
2.3 JSP指令元素 2.4 JSP动作元素
JSP开发案例教程
本章内容
01 脚本元素 03 JSP指令元素
02 案例ch2.2_datetime: 时间格式化
04 JSP动作元素
05 案例ch2.5_include: 框架类型网页
06 小结与练习
2.3 JSP指令元素
指定在当前页
4
session
中是否允许 10 isThreadSafe 指定是否线程安全
session操作
5
buffer
指定处理页面 输出内容时的 11 缓冲区大小
autoFlush
是定当缓冲区满时是 否自动清空
指定当前页面
说明当前页面是否为
6
errorPage 运行异常时调 12 isErrorPage 其他页面的异常处理
该JSP动作表示获取或创建一个名称为guess的、属于类com.GuessNumber的、生命周期 为session的对象,详见本书案例ch5.4_guessNumber(猜数游戏)。
JSP开发案例教程
所有的动作元素需要两个属性:
id属性
id属性是动作元素的唯一标识,可以在 JSP页面中被引用。动作元素创建的id值 可以通过PageContext来调用。
可以使用绝对或相对URL。 ✓ tagDir属性指示前缀将被用于标识在WEB-INF/tags目录下的标签文件。
2.4 JSP动作元素
JSP开发案例教程
2.4 JSP动作元素
JSP动作元素
➢ JSP动作利用XML语法格式的标记,来控制JSP容器Servlet引擎的行为。 ➢ 利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<body>
<% out.print("欢迎您来到教务管理系统."); %> <br>
</body>
</html>
Java代码,用 <% %>包含 每条Java代码 需以分号结尾
同样效果也可以用JavaScript实现
<%@ page language="java" contentType="text/html; charset=gb2312"%> <html> <body> <script type="text/javascript"> document.write("欢迎您来到教务管理系统."); </script> JavaScript代码, <br> 包含在<script></script> 标签内 </body> </html>
out.print与out.println的区别
out对象是Jsp的内置对象,可以使用它的 print和println方法可以将字符串输出到客户 端。这两个方法的区别在于,println方法在 客户端HTML源代码中换行,prinln输出到 HTML源代码则没有换行。如果需要在页面 中产生换行,则需要使用<br>
表达式
使用 JSP 表达式,需要注意几个细节:
JSP 表达式中不能用";"结束 在 JSP 表达式中不能出现多条语句
JSP表达式的内容一定是字符串类型,或者能通过 toString()函数转换成字符串的形式
程序段(scriptlet)
如果需要在 JSP 程序中既要输出数据,也要 实现定义变量等一系列复杂的逻辑操作,表 达式是不能满足要求的,这时候需要 JSP 程 序段。实际上,JSP 程序段就是插入到 JSP 程 序的 Java 代码段
例:JSP声明全局变量
<%
out.println(name + "," + msg);
%>
<br>
<hr> <%! String name = "Jack"; String msg = "欢迎您来到教务管理系统. ";
%>
例:JSP声明方法
<%! //方法定义 private String showMsg(String name,int score){ String msg=",你的考试成绩是:"; return name+msg+score; } %> <% String tempStr = showMsg("Jack",89); out.println(tempStr); %>
思考
编写JSP程序段,打印输出一个国际象棋棋 盘(8行8列)。效果如下图 上述程序段改为程序段和HTML、表达式的 混合形式,该如何改写?
国际象棋棋盘
JSP 声明
JSP 中提供了声明,JSP 声明中可以定义网 页中的全局变量,这些变量在 JSP 页面中的 任何地方都能够使用。在实际的应用中,方 法、页面全局变量、甚至类的声明都可以放
本章结束
本章总结
第一个JSP页面 注释 jsp表达式 jsp程序段 jsp声明
课后作业
1. 术语解释:JSP、Out、Comment、 Expression、Scriptlet 2. 编写程序打印输出九九乘法表,采用JSP程序 段和混合代码两种方法实现。 3. 编写JSP程序打印输出国际象棋棋盘。 提示:使用双重循环控制棋盘的行和列,并结 合table标签实现。通过判断行号与列号的和, 当和为偶数时单元格背景色为黑色,和为偶数 时单元格背景色则为白色。
JSP 与 HTML 区别
HTML 页面是静态页面,也就是事先由用户 写好放在服务器上,由 Web 服务器向客户端 发送。JSP 页面是由 JSP 容器执行该页面的 Java 代码部分,然后,实时生成的 HTML页 面,因而说其是服务器端动态页面
第一个 JSP 页面
<%@ page language="java" contentType="text/html; charset=gb2312"%>
程序段
JSP 程序段的用法如下:
<% Java 代码%> 不能在 JSP 程序段中定义方法
例:JSP程序段,在页面上输出课程 数量和课程名称
<% String[] coursenames = { "Java", "C++", "大学物理"}; out.println("课程数量:" + coursenames.length); %> <hr> <% for (int i = 0; i < coursenames.length; i++) { out.println(coursenames[i]); out.println("<br>"); } %>
同样的页面效果,用 JavaScript 也能够实现, 有何区别?
最大的区别是:JavaScript 源代码是被服务器 发送到客户端,由客户端执行,因此,客户 端可以看到 JavaScript 源代码;而 Java 代码 却不会
注释(comment)
一类是发送到客户端的HTML注释,可以在客 户端的源代码文件中显示。
九九乘法表
表达式(expression)
JSP 表达式的作用是定义 JSP 的一些输出。 表达式基本语法如下所示:
<%=变量/返回值/表达式%>
JSP 表达式的作用是将其里面内容所运算的 结果输出到客户端
例:JSP表达式
<body> <% String name = "Jack"; String msg= "欢迎您来到教务管理系统."; %> <br> <%=name+","+msg%> <%-- JSP表达式--%> </body>
在 JSP 声明部分
JSP 声明(declaration)
使用方法如下: <%! 代码 %> 可以看到其与 JSP 程序段的用法相似(只是多 了一个感叹号),但功能却有所不同。在 JSP 程序段中定义的变量只能先声明后使用。而 JSP 声明中定义的变量是网页级别的,系统 会优先执行,也就是说使用 JSP 声明可以在 JSP 的任何地方定义变量
例:使用循环结构输出对象
<body> <% for (int i = 0; i < 5; i++) { out.println("欢迎您来到教务管理系统."); out.println(“<br>"); } %> </body>
思考:
在网页上打印输出九九乘法表,效果如下图
第2章
JSP 基本语法
本课教学内容
第一个JSP页面
注释
jsp表达式、程序段
jsp全局变量和方法声明
第一个 JSP 页面
JSP 属于动态网页,动态网页随时都可以遇到。当在 google 上 输入关键词,如“Java” 时,提交搜索,google 能够将所有与 Java 有关的搜索结果呈现在页面上。此时,google 在服务器端 进行了一次搜索工作,这次搜索工作显然不可能是人工完成的, 人工不可能在几秒的时间之内,搜索到成千上万的结果。因此, 搜索过程是程序完成的,程序进行了查询数据库的操作。HTML 不能够查询数据库,Java 代码却访问数据库。因此,在 HTML 代码中间混合 Java 代码,就能够让网页拥有动态的功能。而嵌 入了 Java 代码的网页,就是 JSP(Java Server Page)
4. 在一个二维数组内存放5个学生的姓名和家庭 地址,在网页上用表格显示各学生的姓名和家 庭住址。 提示:
声明二维数组String student[][]={{“张三”,“南京 江宁区”},{“李四”,“上海浦东区”},{“王五”,“ 北京海淀区”}};
利用双重循环读取数组元素student[i][j],数组第一 维长度为student.length,第二维长度为 studetn[1].length
HTML注释语法: < !- 注释内容 --! >
另一类是不能发送给客户端的,也就是说不 会在客户端的源代码文件中显示其内容,仅 提供给程序员阅读的,分为两种:
JSP 注释语法: <%-- 注释内容 --%> Java 代码注释://行注释内容 /* 块注释内容 */
例:JSP注释
<body> <% String msg= “欢迎您来到教务管理系统.”; // java注释,String字符串对象类型,“S”需要大写 out.print(msg); //java注释,msg输出给客户端 %> <br> <!-- <%=msg%> HTML风格注释,它会发送到客户端--> <%--<%=msg%>JSP风格注释,它不会发送到客户端--%> </body>