Review JSP 隐式对象 9种内置对象 作用域通信对象 Servlet 对象 错误对象 输入/输出对象 request session

Slides:



Advertisements
Similar presentations
网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
Advertisements

7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
IBM WX-ETP © 2009 IBM Corporation review  JSP 1.What 2.Where 3.How 4. 与 的区别 5. 的作用是什么 6. 的作用是什么 1JSP
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第 7 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 与 JavaBean.
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
面向侧面的程序设计 方林博士 本文下载地址:
动态Web开发技术--JSP.
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
Oracle数据库 Oracle 子程序.
第14章 c++中的代码重用.
在PHP和MYSQL中实现完美的中文显示
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
J2EE与中间件技术 ——Lab.
Signutil.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
Hadoop I/O By ShiChaojie.
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
第二讲 搭建Java Web开发环境 主讲人:孙娜
大学计算机基础 典型案例之一 构建FPT服务器.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
第二章 Java语言基础.
ENS 10.1安装配置指南 王俊涛 | SE.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
任务1-3 使用Dreamweaver创建ASP网页
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
Web安全基础教程
顺序表的删除.
第十二章 过滤器.
第四章 团队音乐会序幕: 团队协作平台的快速创建
Drupal Dev 我想知道:什么时候、什么变化.
VB与Access数据库的连接.
Web安全基础教程
第4章 Excel电子表格制作软件 4.4 函数(一).
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
辅导课程十五.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第四章 UNIX文件系统.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
第5章 表达式语言.
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

Review JSP 隐式对象 9种内置对象 作用域通信对象 Servlet 对象 错误对象 输入/输出对象 request session page exception response application config out pageContext JSP 2017/3/4

review 四种属性范围 在JSP中提供了四种属性保存范围: 在一个页面范围内:page 在一次服务器请求范围内:request 在一次会话范围内:session 在一个应用服务器范围内:application JSP 2017/3/4

JSP Bean JSP Bean 共享Bean 2017/3/4

Agenda 安全的目录:WEB-INF JSP bean jsp:useBean jsp:getProperty jsp:setProperty jsp Bean与参数关联 共享bean 根据条件创建bean 例子:页面累积的访问计数 JSP 2017/3/4

Objective 掌握重要文件放WEB-INF下的重要性 掌握JSP Bean JSP 2017/3/4

安全的目录:WEB-INF WEB-INF 是安全的目录:在客户端直接输入其下的文件,是无法访问的;只能在服务器端直接访问。 web.jsp <h1>WEB-INF安全的目录:web.jsp</h1> <jsp:forward page="WEB-INF/1.jsp"></jsp:forward> WEB-INF/1.jsp <body> <h1>WEB-INF安全的目录:1.jsp</h1> </body> Eg:web.jsp,WEB-INF/1.jsp JSP 2017/3/4

bean JavaBean规范: JavaBean 类必须是一个公共类,并将其访问属性设置为 public 一个javaBean类不应有公共实例变量,类变量都为private 持有值应该通过一组存取方法(getXxx 和 setXxx)来访问:对于每个特性,应该有一个带匹配公用 getter 和 setter 方法的专用实例变量。 bean不过是遵循某些简单约定的常规Java类,这些约定由JavaBean规范所定义,bean并没有扩展特殊的类,也不在特殊的包中,同时,也没有使用特殊的接口。 JSP 2017/3/4

bean的优点 在JSP中,相对于scriptlet和引用常规Java类的JSP表达式,JavaBean组件的应用提供3项优点: 使用bean,页面的创作者可以只使用XML兼容的语法操作Java对象,不需用到圆括号,分号和花括号,从而促进内容与表达之间的强分离,这对于拥有独立Web和Java开发人员的大型开发团队尤其有用。 JSP 2017/3/4

bean的优点 对象的共享更为简单 相比与使用等同功能的显示Java代码,使用JSP bean构造时,对象在多个页面或请求间的共享容易得多。 请求参数与对象属性之间可以方便地对应起来 JSP bean极大地简化了读取请求参数,对字符串进行适当的转换,并将结果放入到对象中的过程。 JSP 2017/3/4

bean的应用 JSP页面中,可以使用3种主要的构造来构建和操作JavaBean组件。 jsp:useBean 可用来构建一个新的bean,也可以访问现存的bean。它的常规使用方式如下: <jsp:useBean id=“beanName” class=“package.Class”/> jsp:getProperty 读取或输出bean属性的值。用该元素读取属性是getXxx调用的简单记法,这个元素的使用如下: <jsp:getProperty name=“beanName” property=“propertyName”/> JSP 2017/3/4

bean的应用 jsp:setProperty 修改bean的属性(即调用形如setXxx的方法)。它的常规使用方式如下: <jsp:setProperty name=“beanName” property=“propertyName” value=“propertyValue”/> JSP 2017/3/4

jsp:useBean <jsp:useBean id=“name” class=“package.class”/> 这个语句一般表示“实例化由class指定的类,并将实例化后的对象绑定到_jspService中的变量,变量的名字有id指定”。但要注意,一定要使用完全限定类名——包括包名的类名。不管是否使用<%@page import...%>导入包,都要满足这个要求。 如: <jsp:useBean id=“book1” class=“test.Book”/> 它等价于: <%test.Book book1=new test.Book();%> JSP 2017/3/4

jsp:getProperty 获得bean之后,就可以使用jsp:getProperty输出它的属性,jsp:getProperty的name属性应该与jsp:useBean给定的id匹配,它的property属性指定需要的属性。 除可以使用jsp:getProperty以外,还可以使用JSP表达式显式地调用对象的方法,变量的名称由id属性指定。 <jsp:getProperty name=“book1” property=“title”/> <%=book1.getTitle()%> 在使用循环、条件语句和没有表达成属性的方法时,就需要用到变量的直接访问。 JSP 2017/3/4

jsp:setProperty 修改bean的属性一般使用jsp:setProperty。name与之前定义的id匹配。 <jsp:setProperty name=“book1” property=“title” value=“JAVA”/> 等价于 <%book1.setTitle(“JAVA”);%> Eg: beaneg1.jsp JSP 2017/3/4

与参数关联 将单个属性与输入参数关联 <jsp:useBean id="entry" class=“etp.bean.SaleEntity"/> <jsp:setProperty name="entry" property="itemID" value='<%=request.getParameter("itemID") %>'/> <% int numItemsOrdered=1; JSP 2017/3/4

与参数关联 try{ numItemsOrdered=Integer.parseInt(request.getParameter("numItems")); }catch(NumberFormatException e){ System.out.println("格式转换异常");} %> <jsp:setProperty name="entry" property="numItems" value="<%=numItemsOrdered %>"/> Eg: bean2.jsp&form.jsp JSP 2017/3/4

与参数关联 Eg: form.jsp&beaneg3.jsp JSP有一个不错的解决方案:它允许将属性与请求参数关联,自动执行从字符串到数字、字符和布尔值的类型转换。可以不使用value属性,而是使用param指定指定一个输入参数,被指定的请求参数的值自动用作bean属性的值,由String到基本类型(byte,int,double等)和包装类(Byte,Integer,Double等)的类型转换都是自动执行。如果请求中没有指定的参数,则不采取任何动作(系统并不传递null到相关联的属性)。 <jsp:useBean id="entry" class=“etp.bean.SaleEntity"/> <jsp:setProperty name="entry" property="itemID" param="itemID"/> Eg: form.jsp&beaneg3.jsp JSP 2017/3/4

与参数关联 将所有的属性与请求参数关联 将属性与请求参数关联可以省略许多简单内建类型的转换工作。 JSP允许我们将这个过程更进一步:将所有的属性与同名的请求参数关联起来。 我们所要做的只是以”*”作为property参数的值。 <jsp:useBean id="entry" class=“etp.bean.SaleEntity"/> <jsp:setProperty name="entry" property="*"/> Eg: form.jsp&beaneg4.jsp JSP 2017/3/4

与参数关联 尽管这种方式比较简单,但要注意三点: 输入参数缺失时不采取任何动作。特别地,系统不会提供null作为属性的值,因此,在设计bean时,一般要为其设置可以识别的默认值,以便可以确定某个属性是否修改过。 自动类型转换并不能像手动类型转换那样能够防止不合法的值。至少,在使用自动类型转换时,应该考虑使用错误处理页面。 bean属性的名称和请求参数大小写敏感,精确匹配。 JSP 2017/3/4

共享bean 到此为止,对于jsp:useBean创建的对象,我们都将它们看作是_jspService方法中的局部变量来处理。 虽然bean的确绑定到局部变量,但这并非唯一的行为,它们还存储在4个不同的位置——依jsp:useBean的可选属性scope的值而定。 JSP 2017/3/4

共享bean 使用scope时,系统首先检查指定的位置是否存在指定名称的bean。仅当系统找不到现有的bean时,才会创建新的bean。这种行为使得servlet可以用下面的方式处理复杂的用户请求:建立bean,将它们存储在3个标准共享位置中的某个位置(请求、会话或servlet的上下文),然后将请求转发到几个适当JSP页面中的某个页面,提供适合于请求数据的结果。 Scope属性有4个可选值: page(默认),request,session和application。 JSP 2017/3/4

根据条件创建bean 为了使bean的共享更为便利,两种情形下,我们可以有条件地对与bean相关的元素进行求值。 使用第二种形式的意义在于jsp:useBean的起始标签和结束标签之间的语句只在创建新的bean时执行,如果使用已有的bean,则不执行。 由于jsp:useBean调用默认的无参构造函数,因此,我们经常需要在bean创建之后修改它的属性。为了模拟构造函数,应该只在bean首次创建时执行这些修改,而不应该在访问现存(或更新后)的bean时执行。做到这一点并不困难:多个页面都可以在jsp:useBean的起始标签和结束标签之间包含jsp:setProperty语句(只有被第一个访问的页面才会执行这些语句) 为了使bean的共享更为便利,两种情形下,我们可以有条件地对与bean相关的元素进行求值。 首先,仅当找不到相同id和scope的bean时,jsp:useBean元素才会实例化新的bean。如果存在相同id和scope的bean,则只是将已有的bean绑定到相关的变量(由id指定)。 其次,我们也可以不使用<jsp:useBean …/> 转而使用 <jsp:useBean …>statements</jsp:useBean> JSP 2017/3/4

例子 AccessCountBean定义了两个属性:accessCount和firstPage。accessCount属性记录对一系列相关页面累积的访问计数,因此,针对所有的请求都要执行。 firstPage属性存储被访问的第一个页面的名称,因此应该在页面被首次访问时执行。为了区分,我们将更新accessCount属性的jsp:setProperty语句放在非条件性代码中,将设置firstPage的jsp:setProperty语句放在jsp:useBean的起始标签和结束标签之间。 Eg: sharecount1.jsp-sharecount3.jsp JSP 2017/3/4

练习 在JSP运行环境中,负责把JSP转化为Servlet程序的软件是_______。 JavaBean的规范? 容器 JavaBean 类必须是一个公共类,并将其访问属性设置为 public JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值。 一个javaBean类不应有公共实例变量,类变量都为private 持有值应该通过一组存取方法(getXxx 和 setXxx)来访问:对于每个特性,应该有一个带匹配公用 getter 和 setter 方法的专用实例变量。 JSP 2017/3/4

使用JDBC访问数据库的顺序是_________________. 创建语句对象 打开数据库连接 装载驱动程序 执行SQL语句 关闭连接 3-2-1-4-8-6-7-5 使用JDBC访问数据库的顺序是_________________. 创建语句对象 打开数据库连接 装载驱动程序 执行SQL语句 关闭连接 关闭结果集 关闭语句对象 处理结果集 JSP 2017/3/4

创建JSP应用程序时,配置文件web.xml应该在程序下的___________目录中。 A. admin B. servlet   C. WEB-INF        D. WebRoot C JSP 2017/3/4

判断题 JSP在第一次访问的时候稍微慢点,但是以后访问却变快了。 JSP的application对象生命周期是用户的一次连接。 用于http中的Servlet程序一般都要从javax.servlet.GenericServlet中继承。 T F F JSP 2017/3/4

改错题 <% page import java.sql.*;%> <%Request.getParameter();%> <%@ page import=“java.sql.*”%> <%request.getParameter();%> JSP 2017/3/4

使用JSP进行表单验证与使用JavaScript进行表单验证的区别 简答题 使用JSP进行表单验证与使用JavaScript进行表单验证的区别 JSP 2017/3/4

Q & A JSP 2017/3/4

Task 认真体会例子 练习JSP Bean 大作业(在页面使用JS对密码进行MD5加密,可以查看资料中的MD5进行参考和学习) 继续留言管理系统:JSP+Servlet+POJO+DAO+DB (可选)预习任务: EL(Expression Language) JSP 2017/3/4

谢谢!! JSP 2017/3/4