版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章JSP开发业务应用预习检查简要描述实现分页的步骤如果每页显示30条新闻,请编写实现显示第4页数据的SQL查询语句文件上传时的表单应如何设置?简述使用Commons-FileUpload组件实现文件上传的关键步骤集中测试2/36回顾与作业点评简述Tomcat中配置数据源的步骤分层开发时的三层架构,分别是什么?点评作业的提交情况和共性问题回顾作业点评3/36本章任务实现新闻分页显示实现简单文件上传实现新闻图片上传的功能4/36本章目标掌握分页显示的原理及实现步骤掌握Commons-FileUpload组件上传文件的功能5/36大容量的数据显示当数据量较多时,用户需要拖动页面才能浏览更多信息数据定位不便采用分页技术实现批量数据的页面显示6/36生活中的分页显示分页显示在生活中随处可见7/36分页实现的思路分页显示的步骤确定每页显示的数据数量确定分页显示所需的总页数编写SQL查询语句,实现数据查询在JSP页面中进行分页显示设置8/36封装Page类将有关分页的数据封装到Page类publicclassPage{
privateintcurrPageNo=1;//当前页码
privateintpageSize=15;//页面大小,即每页显示记录数
privateinttotalCount;//记录总数privateinttotalPageCount;//总页数
List<News>newsList;//每页新闻集合……//省略getter/setter方法}9/36计算显示的总页数获取总记录数根据每页显示记录数计算出总页数publicvoidsetTotalCount(inttotalCount){if(totalCount>0){ this.totalCount=totalCount; //计算总页数
totalPageCount=(this.totalCount%pageSize==0)?(this.totalCount/pageSize):((this.totalCount/pageSize)+1);}}selectcount(1)from表名效率高于selectcount(*)from表名经验计算总页数10/36分页SQL语句使用LIMIT子句SELECT`nid`,`ntitle`,`ncreateDate`FROM`news`LIMIT0,3每页显示的数据量起始行的下标=
(当前页页码-1)*每页显示的数据量30演示示例1:分页的SQL语句11/36获取分页信息获取分页信息演示示例2:获得分页信息12/36页面的设置根据已确认的当前页码设置参数<%<ahref="pageControl.jsp?pageIndex=1">首页</a><ahref="pageControl.jsp?pageIndex=<%=pageIndex-1%>">上一页</a><ahref="pageControl.jsp?pageIndex=<%=pageIndex+1%>">下一页</a><ahref="pageControl.jsp?pageIndex=<%=totalPages%>">末页</a>%>演示示例3:分页的实现13/36页码边界的控制当前页数:[<%=pageIndex%>/<%=totalpages%>]<%if(pageIndex>1){//控制页面显示风格%><ahref="pageControl.jsp?pageIndex=1">首页</a><ahref="pageControl.jsp?pageIndex=<%=pageIndex-1%>">上一页</a><%}if(pageIndex
<totalPages){//控制页面显示风格%><ahref="pageControl.jsp?pageIndex=<%=pageIndex+1%>">下一页</a><ahref="pageControl.jsp?pageIndex=<%=totalPages%>">末页</a><%}%>通过判断pageIndex变量实现边界控制//获取当前页StringcurrentPage=request.getParameter("pageIndex");if(currentPage==null){currentPage="1";}intpageIndex=Integer.parseInt(currentPage);修正页码14/36学员操作—实现新闻分页显示2-1训练要点SQL语句实现分页查询对分页流程及相关数据进行控制需求说明编写代码实现首页新闻标题的分页显示,能够实现页面的切换操作,并在页面中显示总页数和当前页指导讲解需求说明15/36学员操作—实现新闻分页显示2-2实现思路确定每页显示的新闻数量编写数据库访问类,声明查询方法编写SQL语句编写JavaBean封装分页信息在JSP中调用JavaBean指导完成时间:50分钟16/36共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解17/36Commons-FileUpload简介Commons-FileUpload组件Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目Commons-FileUpload组件特点使用简单:可以方便地嵌入到JSP文件中,编写少量代码即可完成文件的上传功能能够全程控制上传内容能够对上传文件的大小、类型进行控制18/36Commons-FileUpload简介获取Commons-FileUpload组件的方式下载Commons-FileUpload组件类库:commons-fileupload-1.2.2.jarAPI文档:commons-fileupload-1.2.2\site\apidocs下载Commons-IO组件类库:commons-io-2.4.jarAPI文档:commons-io-2.4\docs演示:查看目录及相关文件19/36Commons-FileUpload组件应用环境准备在项目中引入commons-fileupload-1.2.2.jar和commons-io-2.4.jar文件设置表单的enctype属性在表单中使用File控件选择文件<formenctype="multipart/form-data"method="post">注意上传文件时form标签的method属性必须设置为“post”,不能设置为“get”
!<inputtype="file"name="nfile"/>20/36Commons-FileUpload组件的API3-1ServletFileUpload类的常用方法方法名称方法描述publicvoidsetSizeMax(longsizeMax)设置请求信息实体内容的最大允许的字节数publicListparseRequest(HttpServletRequestreq)解析form表单中的每个字符的数据,返回一个FileItem对象集合publicstaticfinalbooleanisMultipartContent(HttpServletRequestreq)判断请求信息中的内容是否是multipart/form-data类型publicvoidsetHeaderEncoding(Stringencoding)设置转换时所使用的字符集编码21/36Commons-FileUpload组件的API3-2FileItem接口的常用方法方法名称方法描述publicbooleanisFormField()判断FileItem对象封装的数据类型(普通表单字段返回true,文件表单字段返回false)publicStringgetName()获得文件上传字段中的文件名(普通表单字段返回null)publicStringgetFieldName()返回表单字段元素的name属性值publicvoidwrite()将FileItem对象中保存的主体内容保存到指定的文件中publicStringgetString()将FileItem对象中保存的主体内容以一个字符串返回。其重载方法publicStringgetString(Stringencoding)中的参数用指定的字符集编码方式publiclonggetSize()返回单个上传文件的字节数22/36Commons-FileUpload组件的API3-3FileItemFactory接口实现类:DiskFileItemFactory方法名称方法描述publicvoidsetSizeThreshold(intsizeThreshold)设置内存缓冲区的大小publicvoidsetRepositoryPath(Stringpath)设置临时文件存放的目录23/36文件上传的实现编写上传文件处理页的实现步骤创建FileItemFactory对象创建ServletFileUpload对象 通过构造方法:ServletFileUpload(FileItemFactory)解析form表单提交的所有表单元素数据如果是普通表单元素获取该元素的名和值使用如果是文件数据获取文件名的等参数保存文件数据到服务器演示示例4:文件上传的实现24/36学员操作—实现文件上传2-1训练要点掌握Commons-FileUpload组件相关类方法的使用需求说明制作一个简单的文件上传页面,用户可以选择本地文件,将其上传到服务器进行保存指导讲解需求说明25/36学员操作—实现文件上传2-2实现思路添加commons-fileupload.jar和commons-io-2.4.jar在JSP文件中使用page指令导入Commons-FileUpload组件的相关类调用Commons-FileUpload相关API获取文件信息并实现保存指导完成时间:25分钟26/36共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解27/36控制上传文件的属性2-1控制上传文件的类型List<String>fileType=Arrays.asList("gif","bmp","jpg");Stringext=fileName.substring(fileName.lastIndexOf(".")+1);if(!fileType.contains(ext)){//判断文件类型是否在允许范围内
out.print("上传失败,文件类型只能是gif、bmp、jpg");}else{//上传文件}28/36控制上传文件的属性2-2控制上传文件的大小ServletFileUploadupload=newServletFileUpload(factory);//设置一个完整请求的最大限制upload.setSizeMax(1024*30);try{//……省略上传代码}catch(FileUploadBase.SizeLimitExceededExceptionex){out.print("上传失败,文件太大,全部文件的最大限制是:"+upload.getSizeMax()+"bytes!");}演示示例5:控制上传文件的属性29/36学员操作—实现新闻图片上传2-1训练要点使用Commons-FileUpload组件上传文件并对文件进行控制需求说明管理员在发布新闻时,可以同时实现新闻图片的上传允许上传的图片类型为:GIF文件、JPG文件、JPEG文件上传图片的大小不能超过5MB指导讲解需求说明30/36学员操作—实现新闻图片上传2-2实现思路使用Commons-FileUpload组件上传文件并对文件进行控制用封装业务的JavaBean将数据保存至数据库指导完成时间:40分钟31/36共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解32/36总结分页显示
文件上传确定符合展示条件的数据总量确定分页显示的总页数:
总页数=(总条数%页面容量==0)?总条数/页面容量:总条数/页面容量+1使用LIMIT子句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年广告宣传印刷品订购协议样本
- 2024年购销协议印花税速查指南
- 城市中央公园绿化改造项目协议模板
- 2024年度货物运输险协议规范文本
- 2024年适用商业担保借款协议样式
- 数智驱动的研究生教育治理体系重构框架
- 国家教育战略与育强国建设的目标
- 2024年消防系统增补协议模板
- 2024年区域独家食品销售代理协议
- 公司工期合同范本
- 大学生辩论赛评分标准表
- 诊所污水污物粪便处理方案及周边环境
- 江苏开放大学2023年秋《马克思主义基本原理 060111》形成性考核作业2-实践性环节(占过程性考核成绩的30%)参考答案
- 《我是班级的主人翁》的主题班会
- 酒店安全设施及安全制度
- 近代化的早期探索与民族危机的加剧 单元作业设计
- 租赁机械设备施工方案
- 屋面融雪系统施工方案
- 二年级家长会语文老师课件
- 结构加固改造之整体结构加固教学课件
- 教堂安全风险分级管控体系方案全套资料(2019-2020新标准完整版)
评论
0/150
提交评论