Java-Web项目八孕婴网的设计与实现.ppt
- 文档编号:18837195
- 上传时间:2024-01-03
- 格式:PPT
- 页数:102
- 大小:18.63MB
Java-Web项目八孕婴网的设计与实现.ppt
《Java-Web项目八孕婴网的设计与实现.ppt》由会员分享,可在线阅读,更多相关《Java-Web项目八孕婴网的设计与实现.ppt(102页珍藏版)》请在冰点文库上搜索。
项目八孕婴网设计与实现,8.1系统功能分析与设计8.2系统数据库设计8.3公共模块功能实现8.4主要页面设计8.5主要功能模块实现8.6项目运行发布,8.1系统功能分析与设计,任务要求:
本任务要求进行“孕婴网”系统功能结构及业务流程、网站效果原型、开发环境要求、文件组织结构等进行分析。
一、系统功能结构分析随着人们生活水平的提高,对孕产服务的质量的要求越来越高,近几年提供孕婴服务的机构大量建立,孕婴中心展示服务优势和对外宣传的网站,已经成为大部分孕婴中心必不可少的建设内容。
本“孕婴网”根据目前大部分提供孕婴服务的网站的基本需求,设计了八个功能模块,主要包括。
(1)网站主页:
通过主页展示整个企业门户的风格风貌经营理念,起到提纲契领的导航作用。
(2)关于我们:
介绍会所的经营方针,优势,图片等信息。
(3)套餐活动:
根据自定义的服务内容,动态显示打包服务价格。
(4)专业服务:
安全措施与会所或中心可以提供的专业服务内容。
(5)企业团队:
介绍团队构成,经理、育婴师、月嫂等团队成员。
(6)房间介绍:
房间设施介绍、人员及服务介绍、房间图片展示。
(7)招贤纳士:
企业岗位介绍,招聘信息发布,企业人事邮箱与电话。
(8)会员管理:
会员注册、会员登录、会员基本信息修改。
系统功能结构如下图8.1所示,图8-1,二、网站效果原型为了让读者对本网站有个初步的了解认识,下面给出本网站的几个主要页面的效果图。
网站主页如下图8.2所示;会员注册如下图8.3所示;套餐活动如下图8.4所示;专业服务如下图8.5所示;企业团队如下图8.6所示;房间介绍如下图8.7所示。
图8-2,图8-3,图8-4,图8-5,图8-6,图8-7,三、系统开发环境本系统的软件开发及运行环境具体如下:
(1)操作系统:
Windows7,Windows8.1,Windows10。
(2)JDK环境:
JavaSEDevelopmentKit(JDK)version8。
(3)开发工具:
IntelliJIDEA2018(4)Web服务器:
Tomcat8.0(5)数据库:
Mysql-5.7(配置版)。
(6)浏览器:
推荐谷歌浏览器或者火狐浏览器。
(7)分辨率:
最佳效果为1024x768像素。
四、文件组织结构在进行“孕婴网”开发之前,我们要对网站整体组织架构进行规划,对网站中使用的文件进行合理的分类,分别放置于不同的文件夹下。
通过对文件夹组织结构的规划,可以确保网站文件目录明确、调理清晰,同样也便于网站的更新和维护。
本网站的文件夹组织规划如下图8.8所示:
图8-8,8.2系统数据库设计,任务要求:
本任务要求根据对“孕婴网”的功能分析,进行数据库设计,此处我们开发使用的数据库工具为Mysql-5.7(配置版),读者可以根据需要选择相应数据库产品。
一、数据库设计根据系统功能分析,我们要对会员与用户、套餐及活动、企业团队信息、房型介绍、专业服务、招聘信息等模块进行信息发布与展示,所以我们在此设计至少七个表以支撑目前的系统功能,此处设计的数据库名称为(obclub)。
二、数据表设计1.会员信息表(MEMBER_INFO):
主要用来保存系统的会员信息。
2.套餐及活动表(ACTIVITY_INFO):
主要用来保存孕婴网的优惠套餐和活动信息。
3.企业团队信息(ORG_INFO):
主要用来保存企业具备的月嫂和育英团队信息。
4.房型信息表(HOUSE_INFO):
主要用来保存孕婴中心提供的房型和价格信息。
5.专业服务类型表(SERVICE_TYPE):
主要用来保存孕婴中心可以提供的专业服务类型。
6.专业服务信息表(SERVICE_INFO):
主要用来保存孕婴中心可以提供的专业服务信息。
7.招贤纳士信息表(JOB_INFO):
主要用来保存孕婴网招聘信息。
读者可以根据自己理解的孕婴网站功能的设计进行网站功能设计与扩展,并进行表结构的修改与扩展。
8.3公共模块功能实现,任务要求:
本任务要求实现网站的公共功能模块。
在开发过程中,经常会用到一些公共模块,例如,数据库连接及操作的类、保存分页的类、将文件转换为二进制或者日期处理的工具类、与数据表直接关联的实体类等。
因此,在开发网站时,我们要先设计与实现这些公共模块。
一、创建项目集成开发环境(IntegratedDevelopmentEnvironment,IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。
这是集代码编写功能、分析功能、编译功能、调试功能等于一体的开发软件服务套件。
所有具备这一特性的软件或者软件套(组)件都可以称为集成开发环境。
本章使用IntelliJIDEA2018集成开发环境(以下简称IDEA)实现项目的建立,首先创建“孕婴网”网站项目,具体步骤如下:
(1)打开IDEA后,依次选择File-New-Project菜单项,如图8-9所示。
图8-9,
(2)点击Project之后,出现NewProject新项目对话框,左面选项中选择Java,右面区域选项中选择JavaEE-WebApplication,然后点击Next,如图8-10所示。
图8-10,提示:
在ProjectSDK处,请选择本机安装的JDK1.8版本,如果未显示本机安装的JDK,请查阅IDEA如何配置JDK的相关资料。
(3)选择所创建项目类型之后,请为项目命名,此处为Projectname命名为obclub(要符合文件名命名规范),并且选择项目存储的路径,然后点击Finish,如图8-11所示。
图8-11,(4)obclub项目创建以后,显示了项目的整体结构,一般情况,我们把包和类的源码放在src下,把网站的静态与动态网页以及网站相关资源放在web目录下,如图8-12所示。
图8-12,二、数据库连接类的实现数据库连接类要在所有数据库访问的过程中使用到,所以把数据库连接类提炼出来做为公共模块里面的一个类,主要用到的方法是建立数据库连接getConn。
根据功能要求,数据库连接类BaseDao实现具体步骤如下:
(1)首先建立我们整个项目源文件的包结构,在创建类之前先创建包。
右键点击src-New-Package,如图8-13所示;在输入包名处命名包名为:
.base,点击OK,如图8-14所示。
图8-13,图8-14,
(2)创建数据库访问BaseDao类,如图8-15所示,在刚创建的包处点击右键New-JavaClass,出现创建Class的对话框,填写类名BaseDao,类型Kind选择第一个Class,如图8-16所示。
图8-15,图8-16,数据库访问BaseDao类主要实现数据库访问与连接,具体实现代码如下所示,,package.base;importcom.mysql.jdbc.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassBaseDaopublicstaticConnectiongetConn()Stringdriver=com.mysql.jdbc.Driver;Stringurl=jdbc:
mysql:
/127.0.0.1:
3306/obClub?
useUnicode=true,提示:
getConn方法中mysql的数据库驱动设定为:
driver=com.mysql.jdbc.Driver;数据库访问的地址设定为:
url=jdbc:
mysql:
/127.0.0.1:
3306/obClub?
useUnicode=true此url中有mysql服务器的地址,数据库名字obClub,访问mysql的用户名root,访问mysql数据库的密码空。
数据库驱动类设定为MySqlDriver=com.mysql.jdbc.Driver,此驱动类的压缩包为mysql-connector-java-5.1.34-bin.jar,需要在本书提供的项目资源文件中的此压缩包拷贝到“webWEB-INFlib”目录下。
三、保存分页类的实现此处实现的是分页工具类,需要显示当前页面、计算与保存页面、取得页面列表、取得当前页面、取得所有页面等。
根据功能要求,分页工具泛型类PageUtil实现具体步骤如下:
(1)首先建立保存页面的实体类Page,在包.entity下建立Page类,具体代码如下。
package.entity;publicclassPageprivateintpageCurrent=1;/当前页privateintpageSize=3;/一页显示数目privateintpageTotal=1;/显示多少页publicPage()publicintgetPageCurrent()returnpageCurrent;publicvoidsetPageCurrent(intpageCurrent)this.pageCurrent=pageCurrent;,publicintgetPageSize()returnpageSize;publicvoidsetPageSize(intpageSize)this.pageSize=pageSize;publicintgetPageTotal()returnpageTotal;publicvoidsetPageTotal(intpageTotal)this.pageTotal=pageTotal;,
(2)在公共模块包.base下建立分页工具类PageUtil,具体代码如下。
package.base;import.entity.Page;importjavax.servlet.http.HttpServletRequest;importjava.util.ArrayList;importjava.util.List;publicclassPageUtil/*计算总页数*parampageSize一页显示的内容数量*paramlistSize*return*/privateintshowPage(intpageSize,intlistSize)return(listSize%pageSize=0)?
(listSize/pageSize):
(listSize/pageSize+1);/*每页显示第一条对应list的索引*parampageSize*parampageCurrent*return*/privateintpageStart(intpageSize,intpageCurrent)returnpageCurrent*pageSize-pageSize;,/*获取当前页list*parampage*paramlist*return*/publicListgetList(Pagepage,Listlist)ListarrayList=newArrayList();if(page.getPageCurrent()0)intpageStart=pageStart(page.getPageSize(),page.getPageCurrent();/从list第几条开始for(inti=page.getPageSize();i0;i-,pageStart+)if(pageStart)list.size()arrayList.add(list.get(pageStart);returnarrayList;returnnull;,/*获取当前页*paramrequest*return*/privateintgetPageCurrent(HttpServletRequestrequest)StringpageCurrent=request.getParameter(pageCurrent);if(pageCurrent!
=null)returnInteger.parseInt(request.getParameter(pageCurrent);/当前页return1;/*获取Page所有属性*paramlist右侧显示list*parampageSize一页显示内容数量*paramrequest*return*/publicPageallPage(Listlist,intpageSize,HttpServletRequestrequest)Pagepage=newPage();page.setPageSize(pageSize);page.setPageTotal(showPage(pageSize,list.size();page.setPageCurrent(getPageCurrent(request);/当前页returnpage;,四、基本工具类的实现每个项目都有自己的基本工具类,基本工具类做为公共模块功能类,分类特性为跟项目本身的业务无关或者相关性小,最常用的一些基本操作的功能集合,例如处理日期、处理图片、处理二进制、处理加密解密、处理缓存等。
根据功能要求,此项目中基本工具类Util实现具体步骤如下:
(1)首在包.base下建立Util类,具体代码如下。
package.base;importmons.beanutils.BeanUtils;importjavax.servlet.http.HttpServletRequest;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.OutputStream;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.Enumeration;importjava.util.List;importjava.util.UUID;,publicclassUtil/*将文件转换为二进制*paramfile*return*throwsException*/publicstaticbytefile2byte(Filefile)throwsExceptionbytebuffer=newbyte(int)file.length();FileInputStreamfis=newFileInputStream(file);ByteArrayOutputStreambos=newByteArrayOutputStream();byteb=newbyte4096;intn;while(n=fis.read(b)!
=-1)bos.write(b,0,n);,fis.close();bos.close();buffer=bos.toByteArray();returnbuffer;/*改为时间戳格式*paramdate*return*/publicstaticStringchangeDate(Datedate)SimpleDateFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:
mm:
ss);StringdateString=formatter.format(date);returndateString;,五、实体类的实现实体类就是由属性及所对应的Getter()和Setter()方法组成的类,实体类通常与数据表关联,做为页面和类传递每个实体表数据的容器。
在本孕婴网中设计较多的表,需要用实体类关联和表现,在本节中为了阐述清晰,只介绍有代表性“房型介绍”主要实体类,其余雷同的不再赘述,读者可自行完成代码或者参考本章提供的完整“孕婴网”项目代码的实体类部分。
根据功能要求,此项目中“房型介绍”主要实体类的实现具体步骤如下:
(1)在.entity包下,创建HouseInfo类,用于存储房型信息(具体属性的含义,请参考HouseInfo表的数据字典说明),具体代码如下。
package.entity;importjava.util.Arrays;importjava.util.Date;publicclassHouseInfoprivateLongid;privateStringhouseTitle;privateFloathousePrice;privateStringhouseDetail;privatebytehousePic;privateDatecreatedate;privateIntegershoworder;privateStringifshow;publicHouseInfo()publicHouseInfo(StringhouseTitle,Datecreatedate,Integershoworder,Stringifshow)this.houseTitle=houseTitle;this.createdate=createdate;this.showorder=showorder;this.ifshow=ifshow;,publicHouseInfo(StringhouseTitle,FloathousePrice,StringhouseDetail,bytehousePic,Datecreatedate,Integershoworder,Stringifshow)this.houseTitle=houseTitle;this.housePrice=housePrice;this.houseDetail=houseDetail;this.housePic=housePic;this.createdate=createdate;this.showorder=showorder;this.ifshow=ifshow;,publicLonggetId()returnid;publicvoidsetId(Longid)this.id=id;publicStringgetHouseTitle()returnhouseTitle;publicvoidsetHouseTitle(StringhouseTitle)this.houseTitle=houseTitle;publicFloatgetHousePrice()returnhousePrice;publicvoidsetHousePrice(FloathousePrice)this.housePrice=housePrice;publicStringgetHouseDetail()returnhouseDetail;publicvoidsetHouseDetail(StringhouseDetail)this.houseDetail=houseDetail;,publicbytegetHousePic()returnhousePic;publicvoidsetHousePic(bytehousePic)this.housePic=housePic;publicDategetCreatedate()returncreatedate;publicvoidsetCreatedate(Datecreatedate)this.createdate=createdate;publicIntegergetShoworder()returnshoworder;publicvoidsetShoworder(Integershoworder)this.showorder=showorder;publicStringgetIfshow()returnifshow;publicvoidsetIfshow(Stringifshow)this.ifshow=ifshow;,OverridepublicStringtoString()returnHouseInfo+id=+id+,houseTitle=+houseTitle+,housePrice=+housePrice+,houseDetail=+houseDetail+,housePic=+Arrays.toString(housePic)+,createdate=+createdate+,showorder=+showorder+,ifshow=+ifshow+;,8.4主要页面设计实现,一、网站主页界面设计
(1)当用户访问“孕婴网”时,首先进入的是网站的主页面。
“孕婴网”的主界面主要包括以下四个部分内容:
Banner信息栏:
用于显示网站的Logo和会员登录注册退出入口。
导航栏:
主要用于显示网站的导航信息,提供到各个板块的一级页面链接。
主显示区:
主要显示“房间介绍”、“主页服务”、“套餐及活动”板块的定制内容。
版权信息:
主要用于显示版权和联系方式。
下面显示本网站中设计的主要界面,如图8-17所示:
图8-17,
(2)主页DIV+CSS页面布局。
本网站使用的是bootstrap前端架构进行布局,使用bootstrap提供的相关csss样式,读者可根据个人掌握的技术进行页面布局实现。
首先创建网站的资源(css、fonts、images、js)文件夹,并引入相关资源文件(按照提供的相关网站项目文件,可以直接把资源文件拷贝到项目下)。
资源文件主要目录结构,如下图8-18所示:
图8-18,页面导航部分主要布局代码为:
联系电话admin01退出,页面轮番图部分主要代码为:
Previousnext,页面主显示区主要布局代码为:
房间介绍room更多,(代码接上页),全程心理辅导瑜伽健身中医养生调理月嫂推荐,套餐及活动active夏季酬宾春季酬宾秋季酬宾冬季酬宾,(代码接上页),版权信息(页脚)部分主要代码为:
联系电话:
15111111111邮箱:
obC详细地址:
孕婴中心地址,二、会员登录页面设计
(1)当会员进入网站后,可以点击顶部的会员登录图标进行会员登录,输入用户名和密码后,点击登录进行验证,页面如下图8-19所示。
图8-19,
(2)会员登录页面的布局实现代码如下:
用户名密码现在注册,三、房型展示页面设计
(1)房型展示页面是典型的一个列表式二级页面,使用缩略图和列表显示房型的简介信息,页面如下图8-20所示。
图8-20,
(2)房型展示页面的主要布局实现代码如下:
房间内以典型中国风式的装潢,配合极具韵味的古式家具。
庄严气派却不失温馨。
与室内装潢不同的是,其现代设施也是应有尽有;月子期间对温度十分敏感,室内的中央空调能够带来舒适的温度,屋内设有独立卫生间,影音设备应有尽有,让您在娱乐中度过在月子中心的每一天。
房间介绍古风典范2018-05-31,房间介绍水果缤纷主题房间2018-06-01,房间介绍测试房间2018-06-061,8.5主要功能模块实现,任务要求:
本任务要求实现网站的公共功能模块。
在开发过程中,经常会用到一些公共模块,例如,数据库连接及操作的类、保存分页的类、将文件转换为二进制或者日期处理的工具类、与数据表直接关联的实体类等。
因此,在开发网站时,我们要先设计与实现这些公共模块。
一、会员管理模块实现在本“孕婴网”中,会员管理主要包括:
会员的登录、注册与基本信息修改。
进行会员的注册与信息管理主要是为了提高会员服务质量,在以后的网站内容扩展上可以考虑“会员等级”、“会员积分”、“会员奖励”、“会员折扣”、“会员购物”等相应针对会员的服务功能。
会员管理模块的登录功能实现步骤为:
(1)创建会员实体类MemberInfo。
在src下创建.entity包,在包下创建MemberIn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Web 项目 八孕婴网 设计 实现