欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件开发案例分析(二)网络商城.ppt

    • 资源ID:65250326       资源大小:12.66MB        全文页数:115页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件开发案例分析(二)网络商城.ppt

    项目二、网络商城项目二、网络商城采用技术n语言:JAVAn数据库:MySQLn框架:SSH(Struts/Spring/Hibernate)n运行模式:B/SBrowser/ServerUI(服务)逻辑数据应用程序JSPMySQLJAVAHibernateStruts采用技术BrowserServerHTTPHTMLSpringStrutsHibernateMVC数据访问手段手段目的目的Web应用n静态网页服务器存储静态HTML(HyperText Markup Language,超文本标记语言)n动态网页服务器动态生成HTMLqASPqPHPqJSPJSPHTMLJAVA+CGI动态网页的鼻祖nCGI(CommonGateInterface)通用网关接口q一段部署在服务器上的程序,供客户端的页面来调用的接口q常见的CGI程序为Perl脚本BrowserCGIWebServerRequestResponse动态动态生成HTMLCGI程序ServletJAVA版本的CGIq不想用PERL,想用JAVA!q合适的WebServer:nApache-Tomcat、JBoss、WebLogic、WebSpere等BrowserServletWebServerRequestResponse动态生成HTMLJAVA程序Servlet的补充Filtern过滤器:传送/修改请求,但不创建请求,也不生成响应q请求到达Servlet之前的预处理程序q响应离开Servlet之后的后处理程序BrowserServletRequestResponse动态生成HTMLFilterFilterRequestWebServerServlet的补充Listenern监听器:q监听客户端请求,服务端操作等。实现不同的监听接口。q通过监听器,可以自动激发一些操作q可以在不修改现有系统基础上,增加Web应用程序生命周期事件的跟踪n例:qContextLoaderListener监听器:n实现了ServletContextListener这个接口。当启动Web容器时,自动装配ApplicationContext的配置信息。Web.xml组件配置文件JSP工作原理nJSP(JAVAServerPage)JAVA服务器页面qJSP服务器管理JSP页面有两个阶段:n转换阶段:JSP服务器检验JSP页面语法是否正确,然后将JSP页面转换为Servlet源文件,然后调用javac工具编译Servlet源文件,生成class文件n执行阶段:Servlet容器加载转换后的Servlet类,实例化一个对象处理客户端的请求。在请求处理完成后,响应对象被JSP服务器接收,服务器将HTML格式的响应信息发送到客户端客户端JSP文件(.jsp)Servlet文件(.java)Class文件(.class)Servlet实例(对象)JSP服务器RequestResponse动态生成HTMLJSP内置对象q最常用、最重要的几个与Web相关的对象q无需声明,直接在JSP中使用的JAVA对象传统MVCnV(View):数据的显示nM(Model):数据的处理/存储nC(Controller):接收View的事件,操作ModelViewModelController用户输入/输出事件操作显示Web世界的MVCViewModelController用户输入/输出执行操作刷新页面浏览器分发器呈现SSHnStruts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转。nHibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问nSpring做管理,管理struts和hibernateSpringStrutsHibernateStruts实现Web MVC的框架ViewModelAction用户输入/输出执行操作刷新页面浏览器分发器呈现FilterDispatcherJSP更多更多JAVA类类Strut.xmlStruts 2配置nweb.xml:中添加Struts2组件(过滤器)nstruts.properties:Struts全局属性配置(Key-Value形式)nStruts.xml:管理应用中的Action映射,主要内容包括:qAction:Struts2的基础工作单元ControllerqResult:定义Action返回值,同时告诉Struts2,Action调用后做什么qInterceptor:拦截器在Action执行之前或者之后,被调用的代码qPackage:将Action、Result、Interceptor等打包到一个逻辑单元qNamespace:命名空间使功能不同的Action,可以取相同的名字以html为后缀的请求直接转换为Action,并由Struts管理Struts 2配置n例:struts.xmlStruts 2配置n例:struts-admin.xml(部分代码)Struts 2辅助功能n利用通配符定义Action:Struts 2辅助功能n拦截器拦截器q拦截器是一个能在Action执行的前后执行的代码,也可以把若干个拦截器连在一起,组成拦截器栈n验证器验证器q有些时候,系统需要对用户的输入数据进行验证。比如用户注册时,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测邮箱的检测、字符串长度的检测等等n转换器转换器q网页收集的信息不管是什么类型的,都是以字符串形式提交给服务器。而Java是强类型语言,要想接收客户端提交的信息,就必须将这些信息转换成相应的Java数据类型拦截器及拦截器栈n拦截器是一个能在Action执行的前后执行的代码,也可以把若干个拦截器连在一起,组成拦截器栈。n使用自定义的拦截器配置在struts配置文件的Action中,还要引入defaultStack,否则会造成若干重要功能的缺失,如,使用了modelDriven的Action将不能获取到form表单中字段的值。n例:adminDefaultStackindexActionloginInterceptordefaultStack拦截器拦截器栈拦截器及拦截器栈n例:Struts 2验证器nStruts2输入验证q有些时候,系统需要对用户的输入数据进行验证。比如用户注册时,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测邮箱的检测、字符串长度的检测等等Struts 2验证器nStruts2输入验证使用q在对应的action的包下添加一个验证框架的配置文件,文件名称为Action类名-validation.xml.如果Action中有多个方法,则一般使用Action类名-Action别名-validation.xmlq支持校验的Action必须实现Validateable接口,一般继承ActionSupport类就可以了.q如验证失败,错误信息将会显示在标签中n例:Customer_reg.jspCustomerAction.java的save()函数CustomerAction-customer_save-validation.xml用户注册页面Struts 2类型转换器nStruts2类型转换q网页收集的信息不管是什么类型的,都是以字符串形式提交给服务器。而Java是强类型语言,要想接收客户端提交的信息,就必须将这些信息转换成相应的Java数据类型q全局配置xwork-conversion.propertiesJSP(网页)Struts(标签)Action(属性)StringEnumStruts 2类型转换器n例:枚举的使用n创建枚举类型要使用enum关键字,隐含了所创建的类型(如Sex)都是抽象类java.lang.Enum的子类n枚举类型符合通用模式Class EnumE extends Enum,而E表示枚举类型的名称(如Sex)n枚举类型的每一个值都将映射到protected Enum(String name,int ordinal)构造函数中。在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序EnumSex继承getName()getValues()方法BOYGIRLALL值枚举的使用最简化定义:最简化定义:HibernateORM框架nORMObject/RelationMapping:对象-关系映射qJAVA面向对象q数据库关系型数据库JAVA数据库1.拆解出属性2.拼接SQL字符串构造JAVA对象自动化自动化Hibernate框架组成q数据持久化类(*.java)JAVABeanq数据库表q映射文件(*.hbm.xml)对象到数据库表的映射q配置文件()持久化类数据库表映射映射文件配置文件配置Hibernate框架组成n例:(映射文件)持久化类(User)数据库表(tb_user)映射usernamepassword记录记录usernamepassword属性属性Springn开源的应用框架,为了解决企业应用开发复杂而创建的n致力于提供一个以统一、高效的方式构造整个应用,并可以将单层框架(如Struts、Hibernate等)以最佳的组合糅合在一起,建立一个连贯的体系StrutsHibernateSpringSpringIoCnIoC(InversionofControl)控制反转q不直接(在JAVA中)创建对象,但是(在XML文件中)描述创建它们的方式。q代码中不直接与对象和服务连接,而在配置文件中描述哪一个组件需要哪一项服务,(IoC)容器负责将组件和服务连接到一起ObjAObjBObjCCreateCreate传统的对象组装传统的对象组装ObjAObjBObjCSet()Set()IoC容器创建对象容器创建对象IoC容器ObjAObjBObjCCreateCreateSpringIoCn使用配置文件实现IoC配置文件BeanFactoryBean对象加载getBean()Bean类SpringIoC容器SpringIoCn例:Bean类将Bean类注册到配置文件(bean-config.xml)SpringIoCBean对象获取(无需构造函数,属性值自动注入)SpringIoCnWeb.xml加载Spring配置文件(无需代码中手工加载)SpringIoCnBean中引入其他BeanReftransactionManagerhibernateTemplatesessionFactorySpringIoCn采用注释的方式简化配置文件无需写到配置文件中q简化Bean(类/对象)q程序中所有的XXXAction类及所有的XXXDAO类,实际上都被Spring管理起来(虽然没有出现在配置文件中)SpringIoCq简化Bean中的引入(Ref)属性自动装配(Autowired注释)XXXActionXXXDAOAutowiredXXXDAOHibernateTemplateAutowiredSessionFactoryRefRefRef配置文件applicationContext-Commom.xmlSpringIoCnSpring其他注释qScopeSpring作用域,声明IOC容器中的对象的存活空间qTransactionalSpring事务管理,以保证事务的原子性SpringAOPnAOP(AspectOrientedProgram)面向切面编程q通过减少重复代码模块,提高工作效率q例例:通过调用过程中的植入,可以分离出系统的核心关注点和横切关注点。从横向角度,截取业务管理行为的内部消息,以达到织入权限管理逻辑的目的。在调用代码中并不包含权限验证的调用过程订单管理权限验证权限验证传统逻辑管理传统逻辑管理数据权限验证产品管理。订单管理引入引入AOP管理管理数据产品管理。切面权限验证切入点Spring 整合StrutsJSPStruts.xmlSpringAction链接装配执行业务逻辑,并根据结果输出Spring 整合HibernateActionDAOHibernateTemplateSpring装配调用调用sessionFactory调用数据库数据库ORM需求分析需求分析功能模块网络商城前台后台需求分析前台首页Head.jsp登录、注册链接需求分析后台页面需求分析功能模块网络商城前台后台账户管理商品浏览、购买登录管理页面(商品、商品类别、订单)添加查询删除修改注册订单登录购物车按类别按推荐|商家按时间按热销|销量按查询按人气|点击需求分析需求列表商品购物车订单需求分析需求列表需求分析主要实体n主要实体q管理员(卖家):(User)q用户(买家):(Customer)q商品:(ProductInfo)q商品类别(ProductCategory)q商品图片:(UploadFile)q购物车(Cart)q订单:(Order)q订单项:(OrderItem)实体联系图User(管理员)Customer(用户)商品(ProductInfo)商品类别(ProductCategory)订单(Order)订单项(OrderItem)商品图片(UploadFile)n1n1n11n拥有拥有拥有属于购物车(Cart)拥有111n拥有1n拥有商品管理商品类别管理订单管理后台前台总体设计数据库设计总体设计数据库设计n管理员(卖家)信息表(tb_user)总体设计数据库设计n会员(买家)信息表(tb_customer)总体设计数据库设计n商品类别信息表(tb_productcategory)总体设计数据库设计n商品信息表(tb_productinfo)总体设计数据库设计n上传文件信息表(tb_uploadfile)总体设计数据库设计n订单信息表(tb_order)总体设计数据库设计n订单项表(tb_orderitem)总体设计界面设计nHTML超文本标记语言q“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。q超文本标记语言的结构包括两部分:n“头”部分(Head):关于网页的信息n“主体”部分(Body):网页的具体内容。qHTML使用标记标签来描述网页,HTML标签通常是成对出现的,比如和qHTML元素:指的是从开始标签(如)到结束标签(如)的所有代码。q大多数HTML元素可以嵌套(可以包含其他HTML元素)。qHTML标签可以拥有属性。属性提供了有关HTML元素的更多的信息总体设计界面设计超文本整个页面head页面属性(不显示)Body页面内容(显示)标签控件类元素(除标签外)父控件内所有子控件总体设计界面设计n常见标签及功能总体设计界面设计n动态网页:JSPHTML+JAVAq以结尾,中间嵌入JAVA代码qStruts标签简化JSPn以结尾总体设计界面设计nStruts常用标签q通用标签qUI标签总体设计界面设计n例:Index.jspBodyhead.jspdivid=boxdivid=leftdivid=rightdivid=footdivid=left_s01 divid=left_s02 divid=left_x 1n总体设计界面设计divid=leftdivid=right head.jspdivid=left_s01 divid=left_s02 divid=left_x divid=foot总体设计界面设计divid=left_x divid=left_122 table(1行2列)tr(行)tb(列)tb(列)divid=left122_y 红色的字,二级类别一级类别div.n总体设计界面设计Struts实现Web MVC的框架ViewModelAction用户输入/输出执行操作刷新页面浏览器分发器呈现FilterDispatcherJSP更多更多JAVA类类Strut.xml总体设计界面设计Struts.xmlStruts-default.xmlStruts-front.xmlStruts-admin.xml前台后台继承总体设计界面设计nStruts-default.xml任意Actionstrutsxxx.jsp返值返值链接链接/表单表单总体设计界面设计nStruts-font.xml除继承Struts-default.xml返值以外总体设计界面设计主页product_list.jsp点击菜单,搜索点击具体商品点击具体商品product_click_list.jspproduct_find_list.jsp包含子页面点击具体商品购物车页面:cart_list.jspproduct_select.jspn商品浏览、加入购物车流程商品浏览、加入购物车流程总体设计界面设计n购物车、订单购物车、订单购物车页面:cart_list.jsp主页继续挑选订单添加:order_add.jsp订单确认:order_confirm.jsp订单列表:order_list.jsp总体设计界面设计n后台页面top.jspleft.jspuser_login.jspmain.jspiframe(name=abc)总体设计界面设计nStruts-admin.xml总体设计界面设计n后台界面后台界面user_login.jspmain.jsp登录top.jspleft.jspiframe包含category_add.jspcategory_list.jspproduct_add.jspproduct_list.jsporder_query.jsporder_list.jsp调用显示总体设计逻辑设计ActionStruts.xmlJSPDAO数据库ModelViewControllerModelORMUtil总体设计UtilActionStruts.xmlJSPDAO数据库ModelViewControllerModelORMUtilWeareHere!Hibernate总体设计UtilnUtilnUtilHibernateStruts转换器自定义Hibernate映射类型总体设计ModelActionStruts.xmlJSPDAO数据库ModelViewControllerModelORMUtilWeareHere!Hibernate总体设计ModelnORM总体设计Model(持久化类)nModel外键表之间利用外键联系总体设计Hibernate框架nHibernateORM框架qORM:Object-RelationMapping(对象关系映射)q面向对象对象程序语言(如JAVA)到关系关系数据库之间的映射q实现面向对象的方式操作数据库n采用面向对象的方式操作持久化对象n将持久化对象的操作转化为数据库操作nHibernate框架构成q持久化类(*.java)q映射文件(*.hbm.xml)qHibernate配置文件()总体设计Hibernate框架a.java表ab.java表bc.java表c映射持久化类数据库总体设计Hibernate框架n例:Order.javatb_order总体设计Hibernate框架主键属性映射外键映射总体设计Hibernate框架nHibernate核心类(本项目将其封装在HibernateUtils.java)qConfiguration类:加载配置文件()qSessionFactory类:n创建Session的工厂类n一个项目通常只需要一个SessionFactory对象n当项目需要操作多个数据库时,需为每个数据库指定一个SessionFactoryn由Configuration创建qSession类:封装持久化操作,由SessionFactory创建qQuery类:用于数据库查询的类,由Session创建ConfigurationSessionFactorySessionQuerybuildSessionFactoryopenSessioncreateQuery增、删、改查总体设计Hibernate框架qHQL:面向对象查询语言SessionQuerycreateQuery取出结果HQLQuery.setParameter()为SQL参数赋值Query.list()等总体设计Hibernate框架nHibernateTemplateSpring对Hibernate功能的封装HibernateTemplatesessionFactory程序(DAO)总体设计Hibernate框架nHibernateTemplateSpring对Hibernate功能的封装总体设计DAOActionStruts.xmlJSPDAO数据库ModelViewControllerModelORMUtilWeareHere!Hibernate总体设计DAOnDAODataAccessObject(数据访问对象)q利用Hibernate框架实现面向对象形式的数据库操作BaseDaoDaoSupportXXXDaoXXXDaoImplextendsextends继承继承implementsimplements实现实现接口类被Action调用总体设计DAOnBaseDAO泛型基础接口,将所有DAO共有的公共接口抽象出来,统一定义在这里总体设计DAOnSupportDAO泛型基础接口实现(利用泛型的方式,将其他DAO的公共操作抽象地实现在这里)其他DAO类的基类q属性:q方法:使用HibernateTemplate对象,实现BaseDAO接口定义的方法总体设计DAOn例:总体设计DAOnXXXDAO/XXXDAOImpl总体设计DAOActionStruts.xmlJSPDAO数据库ModelViewControllerModelORMUtilWeareHere!Hibernate总体设计Actionn例:链接方式(index.jsp):n例:表单方式(customer_login.jsp):总体设计ActionnAction驱动模式qProperty-Driven:Action自己的属性来接收来自JSP的参数数据qModel-Driven:Action利用一个单独的对象来接收来自JSP的参数数据n例:customer_login.jsp总体设计ActionActionSupportBaseActionXXXAction1.由Struts框架提供2.包含了Action能够提供的许多可选服务的默认实现RequestAwareSessionAwareApplicationAware通过实现拦截器接口,获取ServiceAPI对象(与JSP内置对象相对应)1.定义所有的DAO2.定义了所有Action公共返值3.实现了所有Action公共接口总体设计ActionnBaseActionq属性总体设计ActionnBaseActionq方法总体设计ActionnIndexAction:准备数据,返回后数据将被显示到主页面q新增属性q新增方法总体设计ActionnOrderCartAction:封装所有购物车操作q新增属性q新增方法总体设计ActionnOrderOrderAction:封装所有订单操作q新增属性总体设计ActionnOrderOrderAction:封装所有订单操作q新增方法总体设计ActionnproductProductAction:封装所有商品操作q新增属性总体设计ActionnproductProductAction:封装所有商品操作q新增方法前台总体设计ActionnproductProductAction:封装所有商品操作q新增方法后台总体设计ActionnproductProductCategory:封装所有商品类别操作q新增属性总体设计ActionnproductProductAction:封装所有订单操作q新增方法后台总体设计总结ActionStruts.xmlJSPDAO数据库ModelViewControllerModelORMUtilHibernate所有都由Spring管理起来IoC

    注意事项

    本文(软件开发案例分析(二)网络商城.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开