第4章第4章 第4章第4章 JSP 内置对象. 本课教学内容  认识 JSP 内置对象  out 对象  request 对象  response 对象  Cookie 操作  利用 session 开发购物车  session 其他 API  application 对象.

Slides:



Advertisements
Similar presentations
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 4 章 内 置 对 象 有些成员变量不用声明就可以在 JSP 页 面的脚本( Java 程序片和 Java 表达式) 中使用,这就是所谓的内置对象。 内置对象有: resquest 、 response 、 session.
Advertisements

第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法.
网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
第五章 jsp 内置对象 1. request 对象 在 jsp 中,内置对象 request 封装了用户提交的信息, 那么该对象调用相应的方法可以获取封装的信息, 即使用该对象可以获取用户提交的信息。 客户一般使用 html 表单向服务器的某个 jsp 页面提 交信息,表单的一个格式 提交手段.
第 2 章 JSP 应用基础(三).  page 对象、 config 对象、 out 对象  response 对象  request 对象  session 对象  application 对象  pageContext 、 exception 对象 教学目标 :
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
第五章 JSP 的内置对象 西南科技大学网络教育系列课程 动态网页设计( JSP ). 动态网页设计( JSP ) 内置对象概述 特点 request :得到客户端的信息。 (HttpServletRequest) session :保存单个用户访问时的一些信息。
IBM WX-ETP © 2009 IBM Corporation review  JSP 1.What 2.Where 3.How 4. 与 的区别 5. 的作用是什么 6. 的作用是什么 1JSP
Java Web 开发 授课人:张鸽. 第三讲 JSP 内置对象  JSP 有以下九种内置对象,包括:  ·request ,请求对象  ·response ,响应对象  ·pageContext ,页面上下文对象  ·session ,会话对象  ·application ,应用程序对象.
动态页面设计 长沙民政职业技术学院 ☆ WEB 应用开发精品课程. 案例导入 项目 结合 JDBC 技术和 JSP 技术,实现考生登录验证 任务 用户登陆页面与后台验证实现 。 技术要点 ( 关键字 ) 1.JSP 标签和动作应用。 2.JSP 的内置对象 request , response 3.JSP.
面向侧面的程序设计 方林博士 本文下载地址:
高级服务器设计和实现 1 —— 基础与进阶 余锋
基于JSP搭建Web应用程序.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第五章 JSP内置对象 第4章学习了页面组成元素和使用方法。本章学习JSP内置对象的使用。使用JSP内置对象,可以方便操作页面,访问页面环境,实现页面内、页面间、页面与环境之间的通讯。 学习目标 熟悉主要内置对象的概念 理解主要内置对象的作用域和生命期 理解主要内置对象的作用和关系 熟悉主要内置对象的使用方法.
7.5 其他对象 JSP 视频教学课程.
基于JSP搭建Web应用程序.
温故而知新! 2017年3月4日.
Oracle数据库 Oracle 子程序.
课程中心 课程中心培训方案 上海泰泽信息技术有限公司
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
移动开发的灵便迭代之道 黄凯.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
大学计算机基础 典型案例之一 构建FPT服务器.
Ebooking 突发问题解决方案.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第17章 网站发布.
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
供应商登录CJLR SRM系统入口 CJLR供应商仅可以在互联网上访问SRM系统,无法在CJLR内网登录SRM系统.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
任务1-3 使用Dreamweaver创建ASP网页
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
Web安全基础教程
续签协议&修改密码操作手册 GDP项目组 2019/01/30.
DQMClientDim.cxx及双光子练习
Drupal Dev 我想知道:什么时候、什么变化.
第二章 Java基本语法 讲师:复凡.
实验七 安全FTP服务器实验 2019/4/28.
SAGE-移动终端授权 ----校外访问SAGE资源 北京办公室 1.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
3.16 枚举算法及其程序实现 ——数组的作用.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第9章 多媒体技术 掌握 Windows 画图工具的基本操作; 掌握 Windows 音频工具进行音频播放;
Python 环境搭建 基于Anaconda和VSCode.
6.1.2 Response 请求响应对象 Response 对象是 HttpResponse 类的一个实例。HttpResponse 类用户封装页面操作的 HTTP 响应信息。Response 对象的常用属性如下所示。 BufferOutput:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页面之后将其发.
基于列存储的RDF数据管理 朱敏
HTML表单 JSP借由标签所构成的表单区块中,取得用户在其中特定字段输入的数据內容 。 JSP 动态网页新技术.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
1 Web基础知识 1.1 HTTP协议 1.2 Web服务器和浏览器 1.3 C/S模式与B/S模式 1.4 Web的访问原理
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
JUDDI安装手册.
Presentation transcript:

第4章第4章 第4章第4章 JSP 内置对象

本课教学内容  认识 JSP 内置对象  out 对象  request 对象  response 对象  Cookie 操作  利用 session 开发购物车  session 其他 API  application 对象

认识 JSP 内置对象  内置对象:指在 JSP 页面中内置的不需要定义 就可以在网页中直接使用的对象  内置对象预定义的原因 : 因为这些内置对象有些能够存储参数,有些能够提 供输出,还有些能提供其他的功能, JSP 程序员 一般情况下使用这些内置对象的频率比较高

认识 JSP 内置对象  内置对象特点 内置对象是自动载入的,因此它不需要直接实例化 内置对象是通过 Web 容器来实现和管理的 在所有的 JSP 页面中,直接调用内置对象都是合 法的

认识 JSP 内置对象  JSP 规范中定义了九种内置对象,本章主要 介绍前五种 out 对象:负责管理对客户端的输出 request 对象:负责得到客户端的请求信息 response 对象:负责向客户端发出响应 session 对象:负责保存同一客户端一次会话过程 中的一些信息 application 对象:表示整个应用的环境的信息

认识 JSP 内置对象 exception 对象:表示页面上发生的异常,可以 通过它获得页面异常信息 page 对象:表示的是当前 JSP 页面本身,就像 Java 类定义中的 this 一样 pageContext 对象:表示的是此 JSP 的上下文 config 对象:表示此 JSP 的 ServletConfig

out 对象  out 对象,对应的类型是 javax.servlet.jsp.JspWriter  out 对象的作用 用来向客户端输出各种数据类型的内容 对应用服务器上的输出缓冲区进行管理

out 对象  out 输出的主要有 2 个方法: void print() void println()

out 对象  out 对象一些常用的与管理缓冲区有关的函数: void close() :关闭输出流,从而可以强制终止当 前页面的剩余部分向浏览器输出 void clearBuffer() :清除缓冲区里的数据,并且 把数据写到客户端去 void clear() :清除缓冲区里的数据,但不把数据 写到客户端去

out 对象  out 对象一些常用的与管理缓冲区有关的函数: int getRemaining() :获取缓冲区中没有被占用 的空间的大小 void flush() :输出缓冲区的数据。 out.flush() 函 数也会清除缓冲区中的数据,但是此函数先将之前 缓冲区的数据输出至客户端,然后再清除缓冲区的 数据 int getBufferSize() :获得缓冲区的大小

request 对象  request 对应类型是 javax.servlet.http.HttpServletRequest  request 包含的方法 String getMethod() :得到提交方式 String getRequestURI() :得到请求的 URL 地址 String getProtocol() :得到协议名称

request 对象  request 包含的方法 String getServletPath() :获得客户端请求服务器 文件的路径 String getQueryString() :得到 URL 的查询部分, 对 post 请求来说,该方法得不到任何信息

request 对象  request 包含的方法 String getServerName() :得到服务器的名称 String getServerPort() :得到服务器口号 String getRemoteAddr() :得到客户端的 IP 地址 * 具体代码示例见课本

request 对象  request 对象获取客户端得参数常用的是通过 2 个方法: String getParameter(String name) :获得客户 端传送给服务器的 name 参数的值。当传递给此 函数的参数名没有实际参数与之对应时,则返回 null String[] getParameterValues(String name) :以 字符串数组的形式返回指定参数所有值

response 对象  response 与 reuqest 是一对相对应的内置对象, response 可以理解为客户端的响应, request 可以理 解为客户端的请求,二者所表示范围是相对应的 2 个 部分,具有很好的对称性。 response 对应的类 ( 接口 ) 是: javax.servlet.http.HttpServletResponse 。可以通 过查找文档中 javax.servlet.http.HttpServletResponse 来了解 response 的 API

利用 response 对象进行重定向  重定向:就是跳转到另一个页面  重定向方法为: response.sendRedirect( 目标页面路径 );

两种重定向方法的不同  从浏览器的地址显示上来看 forward 方法属于服务器端去请求资源,服务器 直接访问目标地址,并对该目标地址的响应内容进 行读取,再把读取的内容发给浏览器,因此客户端 浏览器的地址不变

两种重定向方法的不同  从浏览器的地址显示上来看 redirect 是告诉客户端,使浏览器知道去请求哪 一个地址,相当于客户端重新请求一 遍。所以地 址显示栏会变

两种重定向方法的不同  从数据共享来看 forward 转发的页,以及转发到的目标页面能够 共享 request 里面的数据 redirect 转发的页以及转发到的目标页面不能共享 request 里面的数据

两种重定向方法的不同  从功能来看 redirect 能够重定向到当前应用程序的其他源, 而且还能够重定向到同一个站点上的其他应用程序 中的资源,甚至是使用绝对 URL 重定向到其他站 点的资源

两种重定向方法的不同  从功能来看 forward 方法只能在同一个 Web 应用程序内的资 源之间转发请求,可以理解为服务器内部的一种操 作

两种重定向方法的不同  从效率来看 forward 效率较高,因为跳转仅发生在服务器端 redirect 相对较低,因为类似于再进行了一次请求

使用频率不是很高的一种重定向  sendError() :向客户端发送 HTTP 状态码的 出错信息

使用频率不是很高的一种重定向  常见的错误代码有: 400 : Bad Request ,请求出现语法错误 401 : Unauthorized ,客户试图未经授权访问受 密码保护的页面 403 : Forbidden ,资源不可用 404 : Not Found ,无法找到指定位置的资源 500 : Internal Server Error ,服务器遇到了无法 预料的情况,不能完成客户的请求

利用 response 设置 HTTP 头  HTTP 头一般用来设置网页的基本属性  response 的 setHeader() 方法来进行设置 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no- cache"); response.setDateHeader("Expires",0); 以上都是表示在客户端缓存中不保存页面的拷贝

Cookie 操作  Cookie 是一个小的文本数据,由服务器端生 成,发送给客户端浏览器,客户端浏览器如 果设置为启用 Cookie ,则会将这个小文本数 据保存到某个目录下的文本文件内。下次登 录同一网站,客户端浏览器则会自动将 Cookie 读入之后,传给服务器端。一般情下, Cookie 中的值是以 key-value 的形式进行表 达的

Cookie 操作  Cookie 操作主要用到以下几个方法: response.addCookie(Cookie c) :通过该方法, 将 Cookie 写入客户端 Cookie.setMaxAge(int second) :通过该方法, 设置 Cookie 的存活时间。参数表示存活

Cookie 操作  从客户端获取 Cookie 内容,主要通过以下方 法: Cookie[] request.getCookies() :读取客户端传 过来的 Cookie ,以数组形式返回

Cookie 的盗取  盗取的方法: 利用跨站脚本技术,将信息发给目标服务器;为了 隐藏 URL ,甚至可以结合 Ajax( 异步 Javascript 和 XML 技术 ) 在后台窃取 Cookie

Cookie 的盗取 通过某些软件,窃取硬盘下的 Cookie 。一般说来, 当用户访问完某站点后, Cookie 文件会存在机器 的某个文件夹下,因此可以通过某些盗取和分析软 件来盗取 Cookie

Cookie 的盗取 利用客户端脚本盗取 Cookie 。在 Javascript 中 有很多 API 可以读取客户端 Cookie ,可以将这些 代码隐藏在一个程序 ( 如画图片 ) 中,很隐秘地得到 Cookie 的值

Cookie  Cookie 在 Web 编程中应用很广的原因: Cookie 的值能够持久化,即使客户端机器关闭, 下次打开还是可以得到里面的值 Cookie 可以帮助服务器端保存多个状态信息,但 是不用服务器端专门分配存储资源 Cookie 可以持久保持一些和客户相关的信息

解决 Cookie 安全的方法  方法有以下几种 替代 Cookie 。将数据保存在服务器端,可选的是 session 方案 及时删除 Cookie

解决 Cookie 安全的方法 要删除一个已经存在的 Cookie ,有以下几种方法:  给一个 Cookie 赋以空置  设置 Cookie 的失效时间为当前时间,让该 Cookie 在当 前页面的浏览完之后就被删除了  通过浏览器删除 Cookie 。如在 IE 中,可以选择 " 工具 "— —"Internet 选项 "—— " 常规 " ,在里面点击 " 删除 Cookies" ,就可以删除文件夹中的 Cookie

解决 Cookie 安全的方法 禁用 Cookie 。很多浏览器中都设置了禁用 Cookie 的方法,如 IE 中,可以在 " 工具 " ——"Internet 选项 "——" 隐私 " 中,将隐私级别设 置为禁用 Cookie

利用 session 开发购物车  购物车需求例子 想象用户去购物超市买东西时,都会推一个购物 车,购物车中包含了用户所需要购买的商品,用户 可以将商品添加到购物车,也可将商品从购物车中 取出或删除。用户可以推着购物车从这个专柜走到 那个专柜,用户也不用担心别人的购物车里面的东 西算到自己账上,这在生活中已经成为常识

利用 session 开发购物车  购物车的特点 同一个用户使用的是同一个购物车 不同的用户使用的是不同的购物车。否则,别人 买的东西就会算到自己的账上 在不同货架 ( 页面 ) 之间进行访问时,购物车中的内 容可以保持

如何用 session 开发购物车  一些 session 常用的 API 将内容放入购物车  void session.setAttribute(String name,Object obj); * 针对放入的提醒:  如果两次调用 setAttribute(String name,Object obj); 并 且 name 相同,那么后面放进去的内容将会覆盖以前放 进去的内容  setAttribute(String name,Object obj); 的第二个参数是 Object 类型,即可以放入 session 的不仅仅是一些简单字 符串,还可以是 Object

如何用 session 开发购物车  一些 session 常用的 API 读取购物车中的内容  Object session.getAttribute(String name); * 具体代码示例见课本

session 其他 API -session 的其他操作  移除 session 中的内容 session 有一个函数: void session.removeAttribute(String name);  移除 session 中的全部内容 void session.invalidate();  预防 session 内容丢失

sessionId  sessionId 的原理图

sessionId  问题: 客户在访问多个页面时,多个页面用到 session , 服务器如何知道该客户的多个页面使用的是同一个 session ?  答案 对于每一个 session ,服务器端都有一个 sessionId 来标识它 String session.getId();

利用 session 保存登录信息  例子 假如用户登录学生管理系统,登录后用户可能要 做很多操作,访问很多页面,在访问这些页面的过 程中,各个页面如何知道用户的账号呢? 答案很简单,在登录成功后,用户的账号可以 保存在 session 中。后面的各个页面都可以访问 session 内的内容

application 对象  application 原理图

application 对象  问题:购物车能用 application 实现吗? 很明显,购物车是不能用 application 实现的。因 为不同客户在服务器端访问的是同一个对象,如果 使用 application 实现购物车,客户 1 向购物车中 放了一种物品,客户 2 也可以看到,那样是不允 许的

application 对象  原理 对于一个 Web 容器而言,所有的用户都共同使用 一个 application 对象,服务器启动后,就会自动 创建 application 对象,这个对象会一直保存,直 到服务器关闭为止 对应的类 ( 接口 ) 是: javax.servlet.ServletContext

application 对象  application 对象的 API 主要有以下几个: 将内容放入 application  void application.setAttribute(String name,Object obj); 读取 application 中的内容  Object application.getAttribute(String name); 将内容从 application 中移除  void application.removeAttribute(String name);

本章结束  本章总结 JSP 中的内置对象 Cookie 的使用方法 JSP 中内置对象 session 和 application 购物车的开发  上机习题