基于 JSP 搭建 Web 应用程序. 第五章 Web 应用程序优 化 回顾 什么是会话跟踪技术 ? cookie 和 session 的区别是什么 ? 对象的四种作用域范围分别是什么?

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法.
模块五 动态网页技术 任务五 查询记录 任务一 表单设计制作 任务二 简单动态的 ASP 页面制作任务三 页面与数据库的集成任务四 添加记录 任务六 电商系统融入网站.
Java Web 开发 授课人:张鸽. 第三讲 JSP 内置对象  JSP 有以下九种内置对象,包括:  ·request ,请求对象  ·response ,响应对象  ·pageContext ,页面上下文对象  ·session ,会话对象  ·application ,应用程序对象.
第 4 课 使用 JSP 处理客户端请求.  掌握 Form 表单的请求处理  掌握 JSP 常用内置对象的用法 out 对象 request 对象 response 对象 本章目标.
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
JSP 与数据库 SQL 语言简介 SQL 语言简介 JDBC 简介 JDBC 简介 使用 JDBC 连接数据库 使用 JDBC 连接数据库 访问数据库 数据库访问应用举例.
单元二:面向对象程序设计 任务二:借书卡程序设计.
第6章 数据库管理软件Access 年秋.
第五章 JSP内置对象 第4章学习了页面组成元素和使用方法。本章学习JSP内置对象的使用。使用JSP内置对象,可以方便操作页面,访问页面环境,实现页面内、页面间、页面与环境之间的通讯。 学习目标 熟悉主要内置对象的概念 理解主要内置对象的作用域和生命期 理解主要内置对象的作用和关系 熟悉主要内置对象的使用方法.
基于JSP搭建Web应用程序.
SQL的简单查询.
第2讲 Transact-SQL语言.
数据库技术 实践.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
MVC Servlet与MVC设计模式.
第一讲 数据查询优化.
資料庫管理 資管二 賴柏融.
第二章 JAVA语言基础.
Google App Engine Google 應用服務引擎.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
11-1 JDBC的基礎-說明 昇陽公司提出的資料庫中介軟體(Middleware)稱為「JDBC」(Java Database Connectivity),這是一種開放標準的Java程式介面,可以讓Java程式連接資料庫管理系統, 以Java技術來說,就是實作JDBC驅動程式介面(JDBC Driver.
第六章 學習SQL語言.
API设计实例分析 通用IO API.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
XSS & SQL Injection理論 2014/7/29 許子謙.
专题4:JSP脚本和指令.
Chapter 12 T-SQL 語法與 ASP.NET.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
第9讲 Hibernate查询语言HQL.
Chapter 6 Advanced UI Design.
第十三章 文件和注册表操作.
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
Android智慧型手機程式設計實務應用班
ANDROID PROGRAMMING2.
程式設計實作.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
实验 2:MS Access QBE Query使用
第六讲 JSP中的文件操作(2) 教学目的 本讲继续讲述JSP中使用Java输入、输出流实现文件的读写操作 。 1 文件上传 2 文件下载
Java语言程序设计 第五部分 Java异常处理.
讲课人:王璞 浙江工商职业技术学院.
5.1.1 使用 ExecuteReader()操作数据库
第12章 JSP的檔案與電子郵件處理 12-1 伺服端的檔案處理 12-2 伺服端檔案的讀取與寫入 12-3 客戶端的檔案上傳
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.
快递单模板的制作.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
第 十二 章 C# 中的文件处理.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
辅导课程八.
软件测试 (四)静态测试与动态测试.
Chap5 PHP程式設計進階 授課講師:.
普通高速模板的制作与调整.
Ch11 資料庫範例_與Swing結合 物件導向系統實務.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
第二章 Java语法基础.
Lesson 4 :基礎應用一(計數器) (2005/01/27).
Review 1~3.
第二章 Java基本语法 讲师:复凡.
第2章 Java语言基础.
MySQL执行计划解读 胡中泉.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
第二章 Java基础语法 北京传智播客教育
第5章 表达式语言.
Web安全基础教程
Presentation transcript:

基于 JSP 搭建 Web 应用程序

第五章 Web 应用程序优 化

回顾 什么是会话跟踪技术 ? cookie 和 session 的区别是什么 ? 对象的四种作用域范围分别是什么?

使用分页技术实现页面的分页显示 使用 SmartUpload 实现文件上传功能 学习内容

掌握分页显示的原理及实现步骤 掌握 SmartUpload 组件实现上传功能 能力目标

为什么需要数据分页 使用 Google 搜索 “android” 的搜索结果页面 较多数据信息以分页方式显示 大容量数据分页显示

以列表方式显示数据的特点 优势 数据能够按照指定格式显示,布局清晰 不受信息数量的限制 不足 当数据量较多,页面显示不完全时,需要用户拖动页面才 能浏览更多信息 大容量数据显示特点 那有没有另一种显示方式,既能显示多条信息, 又不需要拖动页面呢? 采用分页技术实现批量数据的页面显示

分页实现的思路 分页显示的步骤 确定每页显示的数据条数 计算出总页数 编写分页查询 SQL 语句及方法

确定分页页数 实现步骤 获取总记录数 根据每页显示记录数与总记录数计算总页数 public int getTotalPages(int count, int pageSize){ int totalpages =0; totalpages = (count%pageSize ==0)?(count/pageSize):(count/pageSize+1); return totalpages; } 计算分页页数

分页 SQL 语句 分页查询基本思路 : 1. 每页显示数据的开始位置等于 ” 每页显示条数 *( 当前页码 -1)” 2. 每页显示条数在外层 select 语句中使用 top 语句设定 eg: String sql = "select top “+pageSize+” * from table where id not in (select top “+(currentPage-1)*pageSize+” id from table order by id) order by id”;

当前页的确认 获取当前页 获取显示页的页码 如果获取的页码为 NULL ,则设置当前页为首页 如果获取的页码不为 NULL ,则该页码即为当前页页 码 // 获取当前页 String currentPage = request.getParameter("pageIndex"); if(currentPage == null){ currentPage = "1"; } int pageIndex = Integer.parseInt(currentPage); 读取页码 判断页码 将当前页码赋值给 变量进行后续的传递 将当前页码赋值给 变量进行后续的传递

分页的设置 分页设置的实现 根据已确认的当前页,设置上页和下页 根据总页数设置首页和末页 首页 "> 上一页 "> 下一页 "> 末页 演示示例:读取主题列表分页显示

首页和末页的控制 已经设置了首页和末页,为什么还要进行控制? String currentPage = request.getParameter("pageIndex"); if(currentPage == null){ currentPage = "1"; } int pageIndex = Integer.parseInt(currentPage); // 对首页与末页进行控制 if(pageIndex < 1){ pageIndex = 1; }else if(pageIndex > totalpages){ pageIndex = totalpages; } 假设当前页为首页,当用户点击上页链接时,传递 的 pageIndex 参数为当前页减一,此时入部进行控 制将会导致错误的查询。 通过判断 pageIndex 变 量实现首末页的控制 通过判断 pageIndex 变 量实现首末页的控制

SmartUpload 组件简介 SmartUpload 组件 专门用于实现文件上传及下载的免费组件 SmartUpload 组件特点 使用简单:编写少量代码,完成上传下载功能 能够控制上传内容 能够控制上传文件的大小、类型 缺点:目前已停止更新服务

SmartUpload 组件应用 单文件上传 混合表单上传 多文件上传 控制上传文件的格式 设定文件上传的大

SmartUpload 组件应用条件 环境准备 使用 SmartUpload 组件需要在项目中引入 jspsmartupload.jar 文件 需要设置表单的 enctype 属性 将 jspsmartupload.jar 添加到 WEB-INF\lib 目录下 设置了 enctype 属性后, 表单必须以 post 方式提交 设置了 enctype 属性后, 表单必须以 post 方式提交

SmartUpload 类及方法 SmartUpload 类 用于实现文件上传和下载的操作 常用方法 属性名称 说 明 public final void initialize(PageContext pageContext) 执行上传和下载的初始化工作,必须实 现 public void upload() 实现文件数据的上传,在 initialize 方法 后执行 public int save(String pathName) 将全部上传文件保存到指定的目录下, 并返回保存的文件个数 public void setAllowFilesList(String ExtList) 指定允许上传的文件扩展名,接收一个 扩展名列表,以逗号分隔 public void setDeniedFilesList ( String fileList) 指定了禁止上传的文件扩展名列表,每 个扩展名之间以逗号分隔 public void setMaxFileSize(long filesize) 设 定每个文件允许上传的最大长度 public void setTotalMaxFileSIze(long totalfilesize) 设定允许上传文件的总长度

Files 类及方法 Files 类 封装了所有上传文件的信息集合 常用方法 属性名称 说 明 public int getCount ()取得文件上传的数目 public File getFile ( int index ) 取得指定位置的 File 文 件对象 public long getSize ()取得上传文件的总长度 public Files getFiles () 将所有上传文件对象以 Collection 的形式返回

File 类及方法 File 类 封装了单个上传文件所包含的所有信息 常用方法 方法名称 说 明 saveAs(String destFilePathName) 将文件保存,参数 destFilePathName 是保存的 文件名 isMissing( ) 判断用户是否选择了文件,即 对应表单项是否为空,返回值 为 boolean 类型 public String getFiledName( ) 获取表单中当前上传文件所对 应的表单项的名称 public String getFileName( ) 获取上传文件的文件名称,不 包含路径

单文件上传的实现 编写上传文件处理页 uploadManage.jsp <% smartUpload su = new SmartUpload(); su.initialize(pageContext); su.setCharset(“GBK”); su.upload(); // 获取单个上传文件 [ 如果要得到文件信息, 则用 file, 如果不需要, 则直接保 // 存 ] com.jspsmart.upload.file file = su.getFiles().getFile(0); // 文件在服务器端保存 file.save(filepath); 导入包 创建 smartupload 对象 上传初始化 上传文件 创建文件读取对象 指定文件保存路径 保存文件 演示示例:实现文件上传

混合表单 如果要上传文件,则表单必须设置 enctype 属性 为 multipart/form-data ,一旦这样设置后,其它 普通表单控件也无法通过 request 对象获取,此时 必须通过 SmartUpload 对象的 getRequest() 方法 取得全部请求参数值。 <% // 实例化 SmartUpload 上传组件 SmartUpload smart = new SmartUpload(); // 初始化上传操作 smart.initialize(pageContext); // 设置字符集 smart.setCharset("gbk"); // 准备上传 smart.upload(); Request smartReq =smart.getRequest(); String username = smartReq.getParameter("username"); // 将上传的文件保存到项目根路径下的 uploadfile 目录中 smart.save("uploadfile"); %> 姓名: 使用 request 内置对象获取: 创建 smartupload 对象 上传初始化 创建 Request 对象 获取不到值 演示示例:实现文件上传

获取表单数据 SmartUpload 获取表单数据 getRequest() :得到 com.jspsmart.upload.Request 对象 常用方法 属性名称 说 明 getParameter(String name) 获取指定参数之值,等同 JSP 内 置对象 Request 的 getParameter 方法 getParameterValues(String name) 获取一个页面表单组件对应多个 值时的用户的请求数据,等同 JSP 内置对象 Request 的 getParameterValues 方法 上传文件: 文件描述:... com.jspsmart.upload.Request surequest = su.getRequest(); String explanation = surequest.getParameter("explanation"); out.println(explanation) ;... 获取 Request 对象 获取表单提交数据

多文件上传 同时上传多个文件 <% // 实例化 SmartUpload 上传组件 SmartUpload smart = new SmartUpload(); // 初始化上传操作 smart.initialize(pageContext); // 设置字符集 smart.setCharset("gbk"); // 准备上传 smart.upload(); // 取得所有上传文件 Files files = smart.getFiles(); // 循环保存各个文件 for(int i=0;i<files.getCount();i++){ smart.save("uploadfile"); } %> 创建 smartupload 对象 上传初始化 获取上传文件 演示示例:实现文件上传 循环保存文件

控制上传文件的类型 使用 SmartUpload 组件可以对上传文件的类型进 行限制 setAllowedFilesList(): 允许上传的文件类型 setDeniedFilesList() :禁止上传的文件类型 SmartUpload su = new SmartUpload(); // 初始化 SmartUpload 对象 su.initialize(pageContext); try { // 定义允许上传文件类型 su.setAllowedFilesList("gif,jpg,doc"); // 不允许上传文件类型 su.setDeniedFilesList("jsp,asp,php,aspx,html,htm,exe,bat"); // 执行上传 su.upload(); }catch(Exception e) 多个文件类型之间以 逗号进行分隔 多个文件类型之间以 逗号进行分隔 演示示例:控制文件上传的类型

控制上传文件的大小 使用 SmartUpload 组件可以对上传文件的大小进 行限制 setMaxFileSize(): 允许上传的单个文件大小 setTotalMaxFileSize() :允许上传的文件总容量 … // 定义允许上传文件类型 su.setAllowedFilesList("gif,jpg,doc"); // 不允许上传文件类型 su.setDeniedFilesList("jsp,asp,php,aspx,html,htm,exe,bat") ; // 单个文件最大限制 su.setMaxFileSize(20000); // 所有上传文件的总容量限制 su.setTotalMaxFileSize(500000); … 限制可上传文件的容量 演示示例:控制文件上传的大小

本章总结 请描述分页显示的 SQL 语句如何实现? 请描述在页面中如何确定上页和下页的页码? SmartUpload 如何实现对上传文件的控制?