JavaWeb应用开发项目教程-第三章_第1页
JavaWeb应用开发项目教程-第三章_第2页
JavaWeb应用开发项目教程-第三章_第3页
JavaWeb应用开发项目教程-第三章_第4页
JavaWeb应用开发项目教程-第三章_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaWeb应用开发,计算机与软件学院王俊松,第3章前台商品展示模块,本章要点:前台商品展示功能的详细设计和具体实现JSP访问数据库前台商品展示功能实现优化网站前台页面的风格统一新品、特价商品展示的详细设计和具体实现使用分页显示技术商品检索功能详细设计和具体实现JSP隐含对象request、responseJSP的include指令和include动作表单提交及中文处理,3.1前台商品展示页面设计,前台商品展示页面效果如图,3.1前台商品展示页面设计,商品信息实体E-R图,3.1前台商品展示页面设计,商品大类实体E-R图,3.1前台商品展示页面设计,商品小类实体E-R图,3.1前台商品展示页面设计,商品信息表结构,3.1前台商品展示页面设计,商品大类表结构,3.1前台商品展示页面设计,商品小类表结构,3.1前台商品展示页面设计,数据表之间的关系,3.1前台商品展示页面设计,创建数据表,3.1前台商品展示页面设计,设置表tb_goods的结构,3.1前台商品展示页面设计,前台页面功能流程图,3.1前台商品展示页面设计,创建main.jsp页面,3.1前台商品展示页面设计,创建main.jsp页面,3.1前台商品展示页面设计,加载数据驱动在JDBC连接到数据库之前,必须要加载数据库驱动程序,例如加载SQLServer的驱动。,3.1前台商品展示页面设计,加载数据驱动到工程中,3.1前台商品展示页面设计,加载数据驱动到工程中,3.1前台商品展示页面设计,加载数据驱动到工程中,3.1前台商品展示页面设计,创建数据库连接创建数据库连接需要创建Connection(java.sql包)类的一个实例。连接代码如下:,3.1前台商品展示页面设计,查询商品信息代码如下:,3.1前台商品展示页面设计,展示商品信息代码如下:width=110height=100/.%,3.1前台商品展示页面设计,关闭数据库连接,释放资源代码如下:,3.1前台商品展示页面设计,main.jsp的显示效果,3.1.4JSP与数据库,JDBC数据库访问机制,3.1.4JSP与数据库,ResultSet对象的遍历,3.2前台商品展示页面功能实现优化,概述CRUD操作提高开发效率,页面简洁,提高代码的可维护性在页面中不使用SQL语句直接操作数据,而将数据库连接和操作功能独立实现对页面功能的优化,3.2前台商品展示页面功能实现优化,优化设计1.设计类DBConnection封装与数据库的连接。2.设计类GoodsDao封装与数据库商品信息表的操作,查询结果用java实用类链表返回。3.设计类GoodsEntity代表商品实体,类的成员变量与数据库中商品信息表字段相对应,成员方法设计对各成员变量的getXxx()和setXxx()方法。,3.2前台商品展示页面功能实现优化,创建类DBConnection/*定义数据库链接类*/packagecom.mycompany.util;importjava.sql.*;publicclassDBConnectionprivateStringdbDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver;privateStringurl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=shopping;/URL地址publicConnectionconnection=null;publicDBConnection()tryClass.forName(dbDriver).newInstance();/加载数据库驱动connection=DriverManager.getConnection(url,sa,sa);/加载数据库catch(Exceptionex)System.out.println(数据库加载失败);,3.2前台商品展示页面功能实现优化,创建类GoodsDao(数据库商品信息表操作类)创建类GoodsEntity(代表商品实体的类)修改前台商品展示页面main.jsp,3.3网站前台页面风格,页面风格统一一个大型的Web最好使用一致的外观风格,如Tomcat技术文档的页面。常用方法:利用划分为几个区域插入一个HTMLJSP,3.3网站前台页面风格,页面风格统一实现上述框架的代码,3.3网站前台页面风格设计与实现,在JSP页面内包含其他JSP内容的方法有两种:使用JSP指令中的指令include替换:使用JSP动作中的动作替换:,3.3.3JSP的include指令和include动作,include指令JSP编译时在出现的地方插入文件。这个包含的过程是静态的,编译时就能确定包含文件的内容。包含的文件可以是HTML文件、文本文件或JSP文件等。如果包含文件被改变,包含此文件的JSP文件也需要重新编译,才能反映修改效果。,3.3.3JSP的include指令和include动作,动作包含文件:静态。仅仅把包含文件的内容,与include指令包含静态文件的效果一样。动态。包含文件被JSP引擎单独编译执行,由动作请求执行,并将传送回来一个响应输出到动作所在的位置。当这个包含文件执行完毕后,JSP引擎继续执行原JSP文件余下的部分。,3.4新品及特价商品展示,功能说明需求:价格有折扣-特价商品,否则为新品。商品展示的风格与main.jsp保持一致,并在页面上实现分页效果。数据库设计是否打折discount、商品现价currentPrice两个字段。discount初始值设定为“0”。当商品被设置为特价商品时,discount值设定为“1”,同时设置商品的现价currentPrice,并在前台特价商品展示页面中出现。,3.4新品及特价商品展示,数据库访问设计对数据库商品信息表操作类goodsDao进行修改,在goodsDao.java中添加方法selectGoodsDiscount,根据方法的参数查询新品或特价商品,参数为“0”查询新品,参数为“1”则查询特价商品,方法的返回值为新品或特价商品的链表。,3.4新品及特价商品展示,分页主要有两种思路:“指针分页”适合数据量和并发量不是很高的应用系统,不适合海量的数据查询。“主键分页”适合海量的数据查询,看多少取多少,需要主键来配合使用。,3.4新品及特价商品展示,分页显示实现步骤1)取得originalList对象中的商品总数,存放到页面变量pageNumber中,并将此值作为总页数的初始值,后根据每页显示商品的数量在做修改:intpageNumber=originalList.size();/计算出记录总数intmaxPage=pageNumber;/计算有多少页数2)初始化一些必要参数,其中request.getParameter(“pageNum”)是使用request内置对象的getParameter方法获取参数名为pageNum的请求参数值,在这里是用户要显示的页码。,3.4新品及特价商品展示,显示分页导航实现页面显示页码总数、记录总数和当前页码数:共为页共有条记录当前为第页上一页,3.4.4JSP内置对象request和response,request对象九种内置对象之一,javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest类的子类对象。封装了用户的信息,3.4.4JSP内置对象request和response,request对象方法取得请求参数的方法StringgetParameter(stringname):获取客户端传送服务器的参数值,该参数是由Name指定的,通常是表单中的参数。EnumerationgetParameterNames():获得客户端传送到服务器端的所有参数的参数名字,其结果是一个枚举实例。StringgetParameterValues(stringname):获取指定参数的所有值,参数由name指定。该方法多用于获取请求参数中有多个值的参数。,3.4.4JSP内置对象request和response,request对象方法储存和取得属性的方法voidsetAttribute(Stringname,java.lang.Objectobjt):设置名字为name的request参数的值。EnumerationgetAttributeNamesInScope(intscope):取得所有scope范围的属性。EnumerationgetAttributeNames():返回request对象的所有属性的名字集合,其结果是一个枚举的实例。ObjectgetAttribute(Stringname):返回由name指定的属性值,如果指定的属性不存在,则会返回一个null值。voidremoveAttribute(Stringname):删除请求中的一个属性,3.4.4JSP内置对象request和response,使用request对象获取客户请求信息实例,3.4.4JSP内置对象request和response,response对象response对象包含了服务器对客户的请求做出动态的响应,向客户端发送数据。和request一样,response对象也由JSP引擎(容器)产生,可以使用response对象提高的方法对响应进行操作。,3.4.4JSP内置对象request和response,response对象的主要方法voidsetContentType(stringcontentType):设置响应MIME(媒体)类型。voidsetstatus(intsc):设定响应状态码。,3.4.4JSP内置对象request和response,3.4.4JSP内置对象request和response,response对象的主要方法voidsendRedirect(Stringlocaltion):重新定向客户端的请求。,3.4.4JSP内置对象request和response,response对象的主要方法设置CookieVoidaddCookie(Cookiec):将cookie加到response对象上,发送到客户端保存。Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。产生新的Cookie对象如下:Cookiec=newCookie(username,john);当cookie对象产生以后,JSP中如果要将封装好的Cookie对象传送到客户端,使用response的addCookie()方法:response.addCookie(c);,3.4.4JSP内置对象request和response,如果JSP读取保存到客户端的Cookie,可以使用request对象的getCookies()方法,执行时将所有客户端传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。例:cookie!=null)/请求中包含有cookiesfor(inti=0;icookie.length;i+)if(username.equals(cookiei.getName()out.println(cookiei.getName()+:+cookiei.getValue();,3.5商品检索,流程分析与设计搜索内容的提交页面frameLeft.jsp,表单元素searchForm搜索结果显示页面goodsShowSearch.jsp,3.5商品检索,编程详解1在GoodsDao类中,添加按商品名称查询方法publicListselectGoodsSearch(Stringsearch)2在页面frameLeft.jsp中,添加搜索条件提交表单,并提交给页面goodsShowSearch.jsp处理。3页面goodsShowSearch.jsp先从页面请求参数search中获取要查询的商品名称,然后以此作方法参数调用数据库商品信息表操作类GoodsDao的selectGoodsSearch()方法。4、编写goodsShowSearch.jsp页面。,3.5.4表单提交与中文处理,HTTP方法页面表单提交GET和POST方法是常用的HTTP方法,除此之外还有OPTIONS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论