前言SSH2(struts2+spring+hibernate)框架,是当今最为流行的项目开发框架组合,用于构建灵活、易于扩展的多层Web应用程序,掌握SHH2对于今后的工作就业显得尤为重要。本次项目的要求就是以SSH2框架为依托,开发一个完整的网上商城项目(手机销售网站),最终要形成一个可以独立运行的系统,并完成相关的文档的建立。一、需求分析1.功能分析1.1功能划分本网站为用户提供狗粮销售服务,用户可通过本网站浏览并购买狗粮。依据功能需求,包括用户控制、商品浏览、商品筛选、购物车、结算与支付等功能。1.2功能描述前台部分用户控制:提供用户登录、注册和注销功能,其中非登陆用户只能浏览而不能购买商品。商品浏览:展示所有商品信息,并提供分页功能。商品筛选:提供商品筛选功能,用户可以依据商品关键字进行商品搜索,也可以按照品牌或者价格区间对商品进行筛选。购物车:当登陆用户点击产品的购买按钮时,购物车页面弹出,可以将商品加入到购物车,并可对购物车中的数量进行修改。结算与支付:登陆用户点击购物车上的结算按钮,后台将会把购物车中的商品生成订单,并跳转到订单中心,订单中心会显示用户所有的订单详细信息(时间,商品信息,数量,订单号,总金额),此时用户可以选择进行支付或是继续浏览商品。2.性能分析2.1数据精确度本项目是一个网上商城项目,涉及到金钱交易,数据的准确性直接影响买卖双方的利益,因此要求极高的数据精确度。2.2时间特性该网上商城项目包含订单功能,要求订单生成时间准确、存入到数据库中的内容及时且有效。2.3适应性本项目采用SHH2框架进行开发,使用MySQL数据库进行信息存取,以Tomcat作为网页服务器,在页面开发过程中也充分考虑到各种浏览器的兼容性问题,能够提供统一、美观的用户界面,支持跨平台,能满足绝大部分用户的需求。3.开发环境开发工具:MyEclipse10+MySQL6.0操作系统:Win7运行环境:JDK1.6+Tomcat二、页面设计该项目前台部分主要包含以下页面:showCart.jsp:购物车页面,实现购物车功能index.jsp:项目主界面,提供最新的产品信息Checkout_success.jsp:确认订单界面,展示你的订单的信息browseBookPaging.jsp:产品列表页面,展示所有狗粮,用户再次页面购买狗粮menu.jsp:菜单页面,物品的分类searchbook.jsp:通过此页面展示搜索结果register.jsp:用户注册页面Register_success.jsp:用户注册成功页面login.jsp:用户登录界面login_success.jsp:用户登录成功界面searchBook.jsp:查找图书页面addToCart_success.jsp:添加商品页面三、项目实现1.配置文件a)web.xml?xmlversion=1.0encoding=UTF-8?web-appversion=3.0xmlns=:xsi=:schemaLocation=://java.sun.com/xml/ns/javaee/web-app_3_0.xsdfilterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mappinglistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenerb)applicationContext.xml?xmlversion=1.0encoding=UTF-8?beansxmlns=:xsi=:p=:schemaLocation=://=dataSourceclass=org.apache.commons.dbcp.BasicDataSourcepropertyname=driverClassNamevalue=com.mysql.jdbc.Driver/propertypropertyname=urlvalue=jdbc:mysql://localhost:3306/bookstore?useUnicode=true&characterEncoding=UTF-8/propertypropertyname=usernamevalue=root/propertypropertyname=passwordvalue=root/property/beanbeanid=sessionFactoryclass=org.springframework.orm.hibernate3.LocalSessionFactoryBeanpropertyname=dataSourcerefbean=dataSource//propertypropertyname=hibernatePropertiespropspropkey=hibernate.dialectorg.hibernate.dialect.MySQLDialect/prop/props/propertypropertyname=mappingResourceslistvalueorg/easybooks/bookstore/vo/Book.hbm.xml/valuevalueorg/easybooks/bookstore/vo/Catalog.hbm.xml/valuevalueorg/easybooks/bookstore/vo/Orderitem.hbm.xml/valuevalueorg/easybooks/bookstore/vo/Orders.hbm.xml/valuevalueorg/easybooks/bookstore/vo/User.hbm.xml/value/list/property/beanbeanid=baseDAOclass=org.easybooks.bookstore.dao.BaseDAOpropertyname=sessionFactoryref=sessionFactory//beanbeanid=userDAOclass=org.easybooks.bookstore.dao.impl.UserDAOparent=baseDAO/beanid=userServiceclass=org.easybooks.bookstore.service.impl.UserServicepropertyname=userDAOref=userDAO//beanbeanid=userActionclass=org.easybooks.bookstore.action.UserActionpropertyname=userServiceref=userService//beanbeanid=catalogDAOclass=org.easybooks.bookstore.dao.impl.CatalogDAOparent=baseDAO/beanid=catalogServiceclass=org.easybooks.bookstore.service.impl.CatalogServicepropertyname=catalogDAOref=catalogDAO//beanbeanid=bookDAOclass=org.easybooks.bookstore.dao.impl.BookDAOparent=baseDAO/beanid=bookServiceclass=org.easybooks.bookstore.service.impl.BookServicepropertyname=bookDAOref=bookDAO//beanbeanid=bookActionclass=org.easybooks.bookstore.action.BookActionpropertyname=catalogServiceref=catalogService/propertyname=bookServiceref=bookService//beanbeanid=shoppingActionclass=org.easybooks.bookstore.action.ShoppingActionpropertyname=bookServiceref=bookService/propertyname=orderServiceref=orderService//beanbeanid=orderDAOclass=org.easybooks.bookstore.dao.impl.OrderDAOparent=baseDAO/beanid=orderServiceclass=org.easybooks.bookstore.service.impl.OrderServicepropertyname=orderDAOref=orderDAO//bean/beansc)sturts.xml!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=strutsextends=struts-defaultactionname=registerclass=userActionmethod=registerresultname=success/register_success.jsp/result/actionactionname=loginclass=userActionresultname=success/login_success.jsp/resultresultname=error/login.jsp/result/actionactionname=logoutclass=userActionmethod=logoutresultname=success/index.jsp/result/actionactionname=browseCatalogclass=bookActionmethod=br