javaee.docx

上传人:b****8 文档编号:30129824 上传时间:2023-08-05 格式:DOCX 页数:48 大小:950.56KB
下载 相关 举报
javaee.docx_第1页
第1页 / 共48页
javaee.docx_第2页
第2页 / 共48页
javaee.docx_第3页
第3页 / 共48页
javaee.docx_第4页
第4页 / 共48页
javaee.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

javaee.docx

《javaee.docx》由会员分享,可在线阅读,更多相关《javaee.docx(48页珍藏版)》请在冰豆网上搜索。

javaee.docx

javaee

2016年01月

1.系统概述:

3

1.1系统目标3

1.1.1SSH框架介绍3

1.2系统主要功能4

2.可行性分析5

2.1技术可行性5

2.2经济可行性5

2.3操作可行性5

3.系统分析6

3.1功能模块划分6

3.2复杂业务流程分析6

3.3关键业务说明8

4.代码设计9

4.1系统所需代码9

4.2代码详细设计14

5.数据库设计25

5.1数据库结构设计25

5.2数据表关系设计26

6.界面设计28

6.1输入界面设计28

6.2输出界面设计30

7.输出设计33

7.1系统输出内容设计33

8.心得体会37

参考文献38

1.系统概述:

1.1系统目标

针对现今网上购书逐渐白热,特别是针对各阶段的学生,青年,以及书籍爱好者,并作为一种先进的交易方式,网上购书已成为一大趋势,所以,为了满足广大读书者的购书需求,一是节约了大量的时间,二是网上购书的操作简便,服务也不错,我们开发了网上书店系统。

通过分析网上书店的功能需求,理解javaEE各主流框架的作用和集成原理,综合他们各自的优势,开发一个有实际功能的网上书店。

通过对网上书店系统的架构和设计,利用注册登录注销等模块对网上书店系统进行开发。

在软件开发项目中,信息管理的影子随处可见,但要真正使技术人员的积极性都发挥出来,并不是“影子”所能完成的。

正所谓“知易行难”,信息管理并不仅仅是管理信息这么简单。

它有一套完备的目标体系;它需要科学的方法,需要一种对时间进度、任务分解、绩效控制的把握和判断的过程。

1.1.1SSH框架介绍

SSH为SecureShell的缩写,由IETF的网络工作小组(NetworkWorkingGroup)所制定;SSH是建立在应用层和传输层基础上的安全协议。

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

传统的网络服务程序,如:

ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。

而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。

所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。

服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

SSH也俗称三层架构:

第一层:

实体类层

第二层:

业务逻辑层

第三层:

表示层(显示层)

Struts:

Model,View和Controller都提供了对应的组件。

ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。

Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。

Spring:

是一个开源框架,它由RodJohnson创建。

它是为了解决企业应用开发的复杂性而创建的。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

然而,Spring的用途不仅限于服务器端的开发。

从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

 

1.2系统主要功能

网上书店系统要实现的功能主要有:

1)首先用户进入系统,浏览页面。

2)可以进行登陆和新用户的注册,个人信息填写。

3)实现用户购书,购买商品信息;

4)实现信息搜索与查询;

5)实现书籍的选择与购买;

6)实现管理员的操作,主要有针对用户信息、购买书籍信息两个方面的操作,包括添加、删除、修改、查询信息。

2.可行性分析

包括开发新系统必要性,新系统开发方案的经济性,技术上的可行性,组织管理上的可行性及环境的可行性等。

2.1技术可行性

此网上书店系统可以运行于Windows操作系统。

对计算机的硬件配置没有太高要求,现在的个人电脑完全可以满足。

数据库运用Mysql来实现。

在网站设计方面,运用HTML、CSS样式、JSP、ajax等知识制作出合理生动的网页。

2.2经济可行性

此系统可以运行于现在市场上出售的各种个人电脑,系统成本主要集中在系统的开发上。

当系统投入运行后,可以实现在网上卖书功能。

所带来的效益远远大于系统软件的开发成本。

在经济上是完全可行。

2.3操作可行性

界面设计充分考虑浏览用户的习惯,图书信息浏览、会员注册登录、购书等功能操作方便。

而且所有网页设计清新、简洁、合理,不会让用户感到视觉疲劳。

可操作性很强。

 

3.系统分析

3.1功能模块划分

网上书店是一个典型的基于web网站的javaEE软件系统,集成了诸多的功能软件,主要包括:

1)显示图书分类。

2)用户可以根据分类浏览某一类图书列表。

3)用户可以查看具体某一本书的简介。

4)在图书浏览也只要单击购买按钮,就可把选定的图书加入购物车。

5)用户可以随时单机购物车,查看车中已购图书的信息。

6)已登录的用户可以单击结账按钮下订单。

7)使用需先注册,在注册页填写个人信息,确认有效后成为新用户。

8)用户在登陆页填写用户名和密码,确认正确后才可结账。

各功能模块划分如图:

图3.1功能模块划分

3.2复杂业务流程分析

1.用户业务流程

游客进入系统页面,可以进行浏览,但若想进行网上购物,需进行注册,注册成功后,会提示注册成功,同时后台会把用户信息存在用户数据库中,若系统中已有此用户进行注册会提示注册失败可以进行直接登陆。

然后用户可以进行购书。

图3.2用户业务流程图

2.购书业务流程

用户提交登陆信息进行登陆,系统提示登陆成功或登陆失败,用户根据需要的图书信息进行查找,把所需的图书放在购物车内,自动生成订单,然后进行结算,完成购书过程。

图3.3购书业务流程图

3.管理员业务流程

管理员提交登陆信息进行登陆,系统提示登陆成功或登陆失败,管理员可以进行查看所有的图书信息,也可以进行修改图书信息,然后对售书过程进行发货处理。

图3.4管理员业务流程图

3.3关键业务说明

用户成功登陆网上书店后进行购书,可以通过模糊关键字搜索进行关键字查询自己需要的图书,然后可以根据需要加入购物车,可以加入自己喜欢的各种图书最后进行结算,结算后会自动生成订单,最后经过管理员对订单进行处理,从而完成整个的购书售书过程。

1)需要做好数据库的准备,通过Mysql数据库来完成数据的输入工作,通过SQL语句来实现简单的储存过程;

2)前台的页面设计尽量简单化、可视化、可操作化、可扩充化;

3)前台页面功能的设计通过在MyEclipse下编写Jsp页面来实现;

4)要求做到本系统的扩充性和可更新性,就是在对数据库进行修改、添加、更新等操作。

 

4.代码设计

4.1系统所需代码

主要包名如下:

1.BASEDAO类

publicclassBaseDAO{

privateSessionFactorysessionFactory;

publicSessionFactorygetSessionFactory(){

returnsessionFactory;

}

publicvoidsetSessionFactory(SessionFactorysessionFactory){

this.sessionFactory=sessionFactory;

}

publicSessiongetSession(){

Sessionsession=sessionFactory.openSession();

returnsession;

}

}

2.定义IBookDAO接口

publicinterfaceIBookDAO{

publicListgetBookbyCatalogid(Integercatalogid);

publicListgetBookbyCatalogidPaging(Integercatalogid,intcurrentPage,intpageSize);

publicintgetTotalbyCatalog(Integercatalogid);

publicListgetRequiredBookbyHql(Stringhql);

publicBookgetBookbyId(Integerbookid);

publicListgetAllBook();

publicvoiddeleteBook(Integerbookid);

publicvoidsaveOrUpdate(Bookbook);

publicBookgetBookByName(Stringbookname);

}

3.定义ICatalogDAO接口

publicinterfaceICatalogDAO{

publicListgetAllCatalogs();

}

4.定义IOrderDAO接口

publicinterfaceIOrderDAO{

publicOrderssaveOrder(Ordersorder);

publicListgetAllOrders();

publicvoidcomplete(Integerorderid);

}

5.定义IUserDAO接口

publicinterfaceIUserDAO{

publicvoidsaveUser(Useruser);

publicUservalidateUser(Stringusername,Stringpassword);

publicManagervalidateManager(Stringmanagername,Stringmanagerpassword);

publicUserfindUserById(Integeruserid);

publicbooleanexitUser(Stringusername);

publicvoidsaveOrUpdate(Useruser);

}

6.定义购物车类

publicclassCart{

protectedMapitems;//属性item

//构造函数

publicCart(){

if(items==null)

items=newHashMap();

}

//添加图书到购物车

publicvoidaddBook(Integerbookid,Orderitemorderitem){

//是否存在,如果存在,更改数量

//如果不存在的话,添加入集合

if(items.containsKey("bookid")){

Orderitem_orderitem=items.get(bookid);

orderitem.setQuantity(_orderitem.getOrderitemid()+orderitem.getQuantity());

items.put(bookid,_orderitem);

}

else{

items.put(bookid,orderitem);

}

}

//更新购物车的购买书籍数量

publicvoidupdateCart(Integerbookid,intquantity){

Orderitemorderitem=items.get(bookid);

orderitem.setQuantity(quantity);

items.put(bookid,orderitem);

}

//计算总价格

publicintgetTotalPrice(){

inttotalPrice=0;

for(Iteratorit=items.values().iterator();it.hasNext();){

Orderitemorderitem=(Orderitem)it.next();

Bookbook=orderitem.getBook();

intquantity=orderitem.getQuantity();

totalPrice+=book.getPrice()*quantity;

}

returntotalPrice;

}

publicMapgetItems(){

returnitems;

}

publicvoidsetItems(Mapitems){

this.items=items;

}

}

7.定义BookService类实现IBookService接口

publicclassBookServiceimplementsIBookService{

privateIBookDAObookDAO;

publicListgetBookbyCatalogid(Integercatalogid){

returnbookDAO.getBookbyCatalogid(catalogid);

}

publicListgetBookbyCatalogidPaging(Integercatalogid,intcurrentPage,intpageSize){

returnbookDAO.getBookbyCatalogidPaging(catalogid,currentPage,pageSize);

}

publicintgetTotalbyCatalog(Integercatalogid){

returnbookDAO.getTotalbyCatalog(catalogid);

}

publicListgetRequiredBookbyHql(Stringhql){

returnbookDAO.getRequiredBookbyHql(hql);

}

@Override

publicListgetAllBook(){

Listbooks=bookDAO.getAllBook();

returnbooks;

}

@Override

publicvoiddeleteBook(Integerbookid){

bookDAO.deleteBook(bookid);

}

@Override

publicvoidsaveOrUpdate(Bookbook){

bookDAO.saveOrUpdate(book);

}

8.定义CatalogService类实现ICatalogService接口

publicclassCatalogServiceimplementsICatalogService{

privateICatalogDAOcatalogDAO;

publicListgetAllCatalogs(){

returncatalogDAO.getAllCatalogs();

}

publicICatalogDAOgetCatalogDAO(){

returncatalogDAO;

}

publicvoidsetCatalogDAO(ICatalogDAOcatalogDAO){

this.catalogDAO=catalogDAO;

}

}

9.定义OrderService类实现IOrderService接口

publicclassOrderServiceimplementsIOrderService{

privateIOrderDAOorderDAO;

publicvoidsetOrderDAO(IOrderDAOorderDAO){

this.orderDAO=orderDAO;

}

publicOrderssaveOrder(Ordersorder){

returnorderDAO.saveOrder(order);

}

@Override

publicListgetAllOrders(){

returnorderDAO.getAllOrders();

}

@Override

publicvoidcomplete(Integerorderid){

orderDAO.complete(orderid);

System.out.println("orderServiceexecute");

}

}

10.定义UserService类实现IUserService接口

publicclassUserServiceimplementsIUserService{

privateIUserDAOuserDAO;

publicvoidsaveUser(Useruser){

this.userDAO.saveUser(user);

}

publicUservalidateUser(Stringusername,Stringpassword){

returnuserDAO.validateUser(username,password);

}

publicbooleanexitUser(Stringusername){

returnuserDAO.exitUser(username);

}

publicIUserDAOgetUserDAO(){

returnuserDAO;

}

publicvoidsetUserDAO(IUserDAOuserDAO){

this.userDAO=userDAO;

}

}

4.2代码详细设计

1.BookAction类

publicclassBookActionextendsActionSupport{

publicStringbrowseCatalog()throwsException{

Listcatalogs=catalogService.getAllCatalogs();

Maprequest=(Map)ActionContext.getContext().get("request");

request.put("catalogs",catalogs);

returnSUCCESS;

}

publicStringbrowseBook()throwsException{

Listbooks=bookService.getBookbyCatalogid(catalogid);

Maprequest=(Map)ActionContext.getContext().get("request");

request.put("books",books);

returnSUCCESS;

}

publicStringbrowseBookPaging()throwsException{

inttotalSize=bookService.getTotalbyCatalog(catalogid);

Pagerpager=newPager(currentPage,totalSize);

Listbooks=bookService.getBookbyCatalogidPaging(catalogid,currentPage,pager.getPageSize());

Maprequest=(Map)ActionContext.getContext().get("request");

request.put("books",books);

request.put("pager",pager);

//购物车要返回时,需要记住返回的地址

Mapsession=ActionContext.getContext().getSession();

request.put("catalogid",catalogid);

returnSUCCESS;

}

publicStringsearchBook()throwsException{

StringBufferhql=newStringBuffer("fromBookb");

if(bookname!

=null&&bookname.length()!

=0)

hql.append("whereb.booknamelike'%"+bookname+"%'");

Listbooks=bookService.getRequiredBookbyHql(hql.toString());

Maprequest=(Map)ActionContext.getContext().get("request");

request.put("books",books);

returnSUCCESS;

}

2.定义ManagerAction类

publicclassManagerActionextendsActionSupportimplementsRequestAware,ModelDriven,Preparable{

publicStringvalidateBookName()throwsUnsupportedEncodingException

{

if(bookService.bookNameIsValid(bookname)){

inputStream=newByteArrayInputStream("1".getBytes("UTF-8"));

}else{

inputStream=newByteArrayInputStream("0".getBytes("UTF-8"));

}

return"ajax-success";

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1