03_JSP指令和脚本元素

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19
为什么需要方法声明
在JSP中格式化当前日期,日期显示形式:yyyy年MM月 dd日
------在JSP中格式化日期的代码片断-----<% SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日"); String strCurrentTime = formater.format(new Date()); %>
6
什么是page指令
• page指令
– 通过设置内部的多个属性来定义整个页面的属性 – 语法:<%@ page 属性1="属性值" 属性2="属性值1,属性值2"… 属性 n="属性值n"%>
• page指令常用属性
属性 language import contentType 描述 指定JSP页面使用的脚本语言 通过该属性来引用脚本语言中使用 到的类文件 用来指定JSP页面所采用的编码方 式 java 无 text/html, ISO-8859-1 默认值
• JSP 脚本元素是用来嵌入Java代码的,主要用来实现页面的 动态请求 • JSP 脚本元素包括:
JSP 脚本元素
小脚本
表达式
声明
9
什么是小脚本
• JSP 小脚本
– 就是在JSP页面里嵌入一段Java代码 – 语法: <% Java代码 %>
<%@ page language="java" import="java.util.*, java.text.*“ contentType="text/html; charset=GBK" %> <html> 在JSP中嵌入的 <head><title>输出当前日期</title></head> Java代码 <body> 你好,ACCP! 今天是 <% SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日"); String strCurrentTime = formater.format(new Date()); out.print(strCurrentTime); %> out.print负责在页面上 </body> 进行输出 </html>
2
<html> <% out.println(30*20); %> </html>
使用表达式显示数据。 显然,表达式更有利于在 HTML中显示数据
使用小脚本显示数据
12
小结 3
• 使用一个一维数组存储两个学生的成绩,在页面中输出 这两个学生的最高成绩、最低成绩、平均成绩、成绩的 相差值 • 要求使用JSP表达式进行输出 • 提示:java.lang.Math类提供了静态方法max、min、abs, 分别用来求得两数相比的最大值、两数相比的最小值、 单个数值的绝对值 • 运行结果示意图
13
小脚本与表达式的综合应用6-1
• 升级新闻发布系统,要求如下:
– 在系统的前台首页面上显示存储在数据库中的新闻一级标题
逐条逐行显示 新闻一级标题
14
小脚本与表达式的综合应用6-2
可以分解为如下几个步骤:
1、设计数据表结构 2、确定存储对象:
类型:新闻一级标题(FirstLevelTitle ) 属性:ID、名称、创建者、创建时间
– 调用类FirstLeveTitleDbOpreation的方法,获得FirstLevelTitle对象的 集合 – 遍历该集合,逐行输出新闻一级标题的名称
-------代码片断-----<% FirstLeveTitleDbOpreation first = new FirstLeveTitleDbOpreation(); List list = first.getAllFirstLevelTitleList(); 小脚本:负责方法调用、 if (list.size() != 0) { 以及在循环中获取数据 for (int i = 0; i < list.size(); i++) { FirstLevelTitle fTitle = (FirstLevelTitle) list.get(i); %> <div align="center"><%=fTitle.getTitleName()%></div><br> <% } 表达式:负责输出各 } 新闻一级标题的名称 %>
3、通过JDBC访问数据库
创建类FirstLeveTitleDbOpreation,用来查询数据库,并返回First LevelTitle对象的集合
4、编写JSP
在页面中逐条逐行输出新闻一级标题的名称
15
小脚本与表达式的综合应用6-3
• 第一步:设计数据表结构,表名为FirstLevelTitle
public class FirstLevelTitle { private int id; private String titleName; private String creator; private Date createTime; //ID //名称 //创建者 //创建时间
public FirstLevelTitle(int id, String titleName, String creator, Date createTime) { this.id = id; this.titleName = titleName; this.creator = creator; this.createTime = createTime; } //此处省略各属性的setter/getter方法
4
为什么需要page指令
在Java文件中,如何引入其它包中的类? • 在Java文件中,通过两种方式引入其它包中的类:
– 使用import关键字(优点:一次引入,处处使用) – 使用完全限定的类名(即必须加上包名)
在JSP文件中,同样可以使用import关键字引入Java类文件,一旦引入,整 个JSP文件都可用 此时,需要使用到page指令
10
小结 2
• 使用两个一维数组分别存储学生姓名、学生成绩 • 在页面中,逐行输出学生的姓名与成绩 • 运行结果示意图
ຫໍສະໝຸດ Baidu
11
什么是表达式
• 表达式
– 表达式是对数据的表示,系统将其作为一个值进行计算和显示 – 语法:<% = Java表达式/变量 %>
1
<html> <%=30*20%> </html>
字段名称 Id 字段说明 序号 数据类型 int 大小
TitleName
Creator CreateTime
标题名称
创建者 创建时间
varchar
varchar datetime
50
50
16
小脚本与表达式的综合应用6-4
• 第二步:确定存储对象
1、创建类: FirstLevelTitle(新闻一级标题) 2、包含属性: ID、名称、创建者、创建时间
JSP指令和脚本元素
回顾
• 为什么第一次请求JSP页面时,响应速度比较慢?

JSP文件中,有几种注释方法?格式是什么?
2
本章任务
升级新闻发布系统
– – 显示存储在数据库中的新闻一级标题 页面显示效果:
3
本章目标
• 掌握page指令的常用属性 • 掌握JSP 脚本元素的用法
– 小脚本 – 表达式 –声 明
21
小结 4
• 编写一个JSP页面,实现根据一个人 18 位身份证显示生 日的功能,要求把表达式、方法声明和小脚本全部用到
运行结果示意图
22
总结
请指出如下JSP页面的错误
<%@ page contentType="text/html; charset=GBK" %> <html> 未使用import引入类 <head><title>输出当前日期</title></head> <body> 你好,ACCP! 今天是 <% SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日"); String strCurrentTime = formater.format(new Date()); out.println(strCurrentTime); %> </body> </html>
在同一个JSP页面中,如果需要在多个地方格式化日期, 如何简化代码?
在Java文件中,可以增加一个方法来解决 在JSP文件中,同样可以声明方法,解决类似问题
20
如何实现方法声明
方法声明
– JSP页面中定义Java方法 – 语法:< % ! Java 代码 %>
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=GBK"%> <html> <%! String formatDate(Date d){ SimpleDateFormat formater=new SimpleDateFormat("yyyy年MM月dd日"); return formater.format(d); } %> 现在可以在多处 你好,ACCP!今天是<%=formatDate(new Date())%><br> 调用该方法了 你好,BENET!今天是<%=formatDate(new Date())%> </html>
23
24
}
17
小脚本与表达式的综合应用6-5
• 第三步:通过JDBC访问数据库
– 创建类:FirstLeveTitleDbOpreation – 包含方法 getAllFirstLevelTitleList:用来查询数据库,并返回所有的 新闻一级标题
18
小脚本与表达式的综合应用6-6
• 第四步:编写showFirstTitle.jsp
5
page指令示例
<%@ page language="java" import="java.util.*, java.text.*" contentType="text/html; charset=GBK" %> <html> <head><title>输出当前日期</title></head> 已经通过page指令的import <body> 属性引入这些类文件了 你好,ACCP! 今天是 <% SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd日"); String strCurrentTime = formater.format(new Date()); out.println(strCurrentTime); %> </body> </html>
7
小结 1
• 编写一个JSP,要求:
– 向一个ArrayList对象中添加10个字符串 – 使用for循环进行添加,存储内容依次是 “第1个字符串” 、……、 “第10个字符串” – 最后在页面上输出:添加完毕 – 使用page指令来引入ArrayList类 – JSP页面不能出现中文乱码
8
JSP 脚本元素
相关文档
最新文档