软件开发案例分析(二)网络商城.ppt
《软件开发案例分析(二)网络商城.ppt》由会员分享,可在线阅读,更多相关《软件开发案例分析(二)网络商城.ppt(115页珍藏版)》请在三一办公上搜索。
1、项目二、网络商城,采用技术,语言:JAVA数据库:MySQL框架:SSH(Struts/Spring/Hibernate)运行模式:B/S Browser/Server,采用技术,Spring,Struts,Hibernate,MVC,数据访问,手段,目的,Web应用,静态网页服务器存储静态HTML(HyperText Markup Language,超文本标记语言)动态网页服务器动态生成HTMLASPPHPJSP,CGI动态网页的鼻祖,CGI(Common Gate Interface)通用网关接口一段部署在服务器上的程序,供客户端的页面来调用的接口常见的CGI程序为Perl脚本,CGI程序
2、,ServletJAVA版本的CGI,不想用PERL,想用JAVA!合适的WebServer:Apache-Tomcat、JBoss、WebLogic、WebSpere等,JAVA程序,Servlet的补充Filter,过滤器:传送/修改请求,但不创建请求,也不生成响应请求到达Servlet之前的预处理程序响应离开Servlet之后的后处理程序,Web Server,Servlet的补充Listener,监听器:监听客户端请求,服务端操作等。实现不同的监听接口。通过监听器,可以自动激发一些操作可以在不修改现有系统基础上,增加Web应用程序生命周期事件的跟踪例:ContextLoaderList
3、ener监听器:实现了ServletContextListener这个接口。当启动Web容器时,自动装配ApplicationContext的配置信息。,Web.xml组件配置文件,JSP工作原理,JSP(JAVA Server Page)JAVA服务器页面JSP服务器管理JSP页面有两个阶段:转换阶段:JSP服务器检验JSP页面语法是否正确,然后将JSP页面转换为Servlet源文件,然后调用javac工具编译Servlet源文件,生成class文件执行阶段:Servlet容器加载转换后的Servlet类,实例化一个对象处理客户端的请求。在请求处理完成后,响应对象被JSP服务器接收,服务器将
4、HTML格式的响应信息发送到客户端,客户端,JSP文件(.jsp),Servlet文件(.java),Class文件(.class),Servlet实例(对象),JSP服务器,Request,Response动态生成HTML,JSP内置对象,最常用、最重要的几个与Web相关的对象无需声明,直接在JSP中使用的JAVA对象,传统MVC,V(View):数据的显示M(Model):数据的处理/存储C(Controller):接收View的事件,操作Model,Web世界的MVC,SSH,Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转。Hiberna
5、te架构实现的DAO类来实现Java类与数据库之间的转换和访问Spring做管理,管理struts和hibernate,Spring,Struts,Hibernate,Struts实现Web MVC的框架,Strut.xml,Struts 2配置,web.xml:中添加Struts 2组件(过滤器)struts.properties:Struts全局属性配置(Key-Value形式)Struts.xml:管理应用中的Action映射,主要内容包括:Action:Struts2的基础工作单元ControllerResult:定义Action返回值,同时告诉Struts2,Action调用后做什么
6、Interceptor:拦截器在Action执行之前或者之后,被调用的代码Package:将Action、Result、Interceptor等打包到一个逻辑单元Namespace:命名空间使功能不同的Action,可以取相同的名字,以html为后缀的请求直接转换为Action,并由Struts管理,Struts 2配置,例:struts.xml,Struts 2配置,例:struts-admin.xml(部分代码),Struts 2辅助功能,利用通配符定义Action:,Struts 2辅助功能,拦截器拦截器是一个能在Action执行的前后执行的代码,也可以把若干个拦截器连在一起,组成拦截器
7、栈验证器有些时候,系统需要对用户的输入数据进行验证。比如用户注册时,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测邮箱的检测、字符串长度的检测等等转换器网页收集的信息不管是什么类型的,都是以字符串形式提交给服务器。而Java是强类型语言,要想接收客户端提交的信息,就必须将这些信息转换成相应的Java数据类型,拦截器及拦截器栈,拦截器是一个能在Action执行的前后执行的代码,也可以把若干个拦截器连在一起,组成拦截器栈。使用自定义的拦截器配置在struts配置文件的Action中,还要引入defaultStack,否则会造成若干重要功能的缺失,如,使用了mod
8、elDriven的Action将不能获取到form表单中字段的值。例:,adminDefaultStack,indexAction,loginInterceptor,defaultStack,拦截器,拦截器栈,拦截器及拦截器栈,例:,Struts 2验证器,Struts2 输入验证有些时候,系统需要对用户的输入数据进行验证。比如用户注册时,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测邮箱的检测、字符串长度的检测等等,Struts 2验证器,Struts2 输入验证使用在对应的action的包下添加一个验证框架的配置文件,文件名称为Action类名-vali
9、dation.xml.如果Action中有多个方法,则一般使用Action类名-Action别名-validation.xml支持校验的Action必须实现Validateable接口,一般继承ActionSupport类就可以了.如验证失败,错误信息将会显示在标签中例:,Customer_reg.jsp,CustomerAction.java的save()函数,CustomerAction-customer_save-validation.xml,用户注册页面,Struts 2类型转换器,Struts2 类型转换网页收集的信息不管是什么类型的,都是以字符串形式提交给服务器。而Java是强类型
10、语言,要想接收客户端提交的信息,就必须将这些信息转换成相应的Java数据类型全局配置xwork-conversion.properties,JSP(网页),Struts(标签),Action(属性),String,Enum,Struts 2类型转换器,例:,枚举的使用,创建枚举类型要使用 enum 关键字,隐含了所创建的类型(如Sex)都是 抽象类java.lang.Enum 的子类枚举类型符合通用模式Class Enum,而E表示枚举类型的名称(如Sex)枚举类型的每一个值都将映射到protected Enum(String name,int ordinal)构造函数中。在这里,每个值的名称
11、都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序,Enum,Sex,继承,getName(),getValues(),方法,BOY,GIRL,ALL,值,枚举的使用,最简化定义:,HibernateORM框架,ORMObject/Relation Mapping:对象-关系映射JAVA面向对象数据库关系型数据库,JAVA,数据库,拆解出属性拼接SQL字符串,构造JAVA对象,自动化,Hibernate框架组成,数据持久化类(*.java)JAVA Bean数据库表映射文件(*.hbm.xml)对象到数据库表的映射配置文件(),持久化类,数据库表,映射,映射文件,配置文件,配置,Hib
12、ernate框架组成,例:(映射文件),持久化类(User),数据库表(tb_user),映射,username,password,记录,username,password,属性,Spring,开源的应用框架,为了解决企业应用开发复杂而创建的致力于提供一个以统一、高效的方式构造整个应用,并可以将单层框架(如Struts、Hibernate等)以最佳的组合糅合在一起,建立一个连贯的体系,Struts,Hibernate,Spring,SpringIoC,IoC(Inversion of Control)控制反转不直接(在JAVA中)创建对象,但是(在XML文件中)描述创建它们的方式。代码中不直接
13、与对象和服务连接,而在配置文件中描述哪一个组件需要哪一项服务,(IoC)容器负责将组件和服务连接到一起,Obj A,Obj B,Obj C,Create,Create,传统的对象组装,Obj A,Obj B,Obj C,Set(),Set(),IoC容器创建对象,IoC容器,Obj A,Obj B,Obj C,Create,Create,SpringIoC,使用配置文件实现IoC,配置文件,BeanFactory,Bean对象,加载,getBean(),Bean类,Spring IoC容器,SpringIoC,例:,Bean类,将Bean类注册到配置文件(bean-config.xml),Sp
14、ringIoC,Bean对象获取(无需构造函数,属性值自动注入),SpringIoC,Web.xml加载Spring配置文件(无需代码中手工加载),SpringIoC,Bean中引入其他Bean Ref,transactionManager,hibernateTemplate,sessionFactory,SpringIoC,采用注释的方式简化配置文件无需写到配置文件中简化Bean(类/对象)程序中所有的XXXAction类及所有的XXXDAO类,实际上都被Spring管理起来(虽然没有出现在配置文件中),SpringIoC,简化Bean中的引入(Ref)属性自动装配(Autowired注释)
15、,XXXAction,XXXDAO,Autowired,XXXDAO,HibernateTemplate,Autowired,SessionFactory,Ref,Ref,Ref,配置文件applicationContext-Commom.xml,SpringIoC,Spring其他注释Scope Spring作用域,声明IOC容器中的对象的存活空间Transactional Spring事务管理,以保证事务的原子性,SpringAOP,AOP(Aspect Oriented Program)面向切面编程通过减少重复代码模块,提高工作效率例:通过调用过程中的植入,可以分离出系统的核心关注点和横
16、切关注点。从横向角度,截取业务管理行为的内部消息,以达到织入权限管理逻辑的目的。在调用代码中并不包含权限验证的调用过程,订单管理,权限验证,权限验证,传统逻辑管理,数据,权限验证,产品管理,。,订单管理,引入AOP管理,数据,产品管理,。,切面,权限验证,切入点,Spring 整合Struts,Spring 整合Hibernate,Action,DAO,HibernateTemplate,Spring,装配,调用,调用,sessionFactory,调用,数据库,ORM,需求分析,需求分析功能模块,需求分析,前台首页,Head.jsp,登录、注册链接,需求分析,后台页面,需求分析功能模块,网络
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 案例 分析 网络商城

链接地址:https://www.31ppt.com/p-5018757.html