软件开发案例分析(二)网络商城.ppt
《软件开发案例分析(二)网络商城.ppt》由会员分享,可在线阅读,更多相关《软件开发案例分析(二)网络商城.ppt(115页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目二、网络商城项目二、网络商城采用技术n语言:JAVAn数据库:MySQLn框架:SSH(Struts/Spring/Hibernate)n运行模式:B/SBrowser/ServerUI(服务)逻辑数据应用程序JSPMySQLJAVAHibernateStruts采用技术BrowserServerHTTPHTMLSpringStrutsHibernateMVC数据访问手段手段目的目的Web应用n静态网页服务器存储静态HTML(HyperText Markup Language,超文本标记语言)n动态网页服务器动态生成HTMLqASPqPHPqJSPJSPHTMLJAVA+CGI动态网页的鼻
2、祖nCGI(CommonGateInterface)通用网关接口q一段部署在服务器上的程序,供客户端的页面来调用的接口q常见的CGI程序为Perl脚本BrowserCGIWebServerRequestResponse动态动态生成HTMLCGI程序ServletJAVA版本的CGIq不想用PERL,想用JAVA!q合适的WebServer:nApache-Tomcat、JBoss、WebLogic、WebSpere等BrowserServletWebServerRequestResponse动态生成HTMLJAVA程序Servlet的补充Filtern过滤器:传送/修改请求,但不创建请求,也不
3、生成响应q请求到达Servlet之前的预处理程序q响应离开Servlet之后的后处理程序BrowserServletRequestResponse动态生成HTMLFilterFilterRequestWebServerServlet的补充Listenern监听器:q监听客户端请求,服务端操作等。实现不同的监听接口。q通过监听器,可以自动激发一些操作q可以在不修改现有系统基础上,增加Web应用程序生命周期事件的跟踪n例:qContextLoaderListener监听器:n实现了ServletContextListener这个接口。当启动Web容器时,自动装配ApplicationContext
4、的配置信息。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实例
5、(对象)JSP服务器RequestResponse动态生成HTMLJSP内置对象q最常用、最重要的几个与Web相关的对象q无需声明,直接在JSP中使用的JAVA对象传统MVCnV(View):数据的显示nM(Model):数据的处理/存储nC(Controller):接收View的事件,操作ModelViewModelController用户输入/输出事件操作显示Web世界的MVCViewModelController用户输入/输出执行操作刷新页面浏览器分发器呈现SSHnStruts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转。nHibernate架构实
6、现的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的
7、基础工作单元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:Str
8、uts 2辅助功能n拦截器拦截器q拦截器是一个能在Action执行的前后执行的代码,也可以把若干个拦截器连在一起,组成拦截器栈n验证器验证器q有些时候,系统需要对用户的输入数据进行验证。比如用户注册时,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测邮箱的检测、字符串长度的检测等等n转换器转换器q网页收集的信息不管是什么类型的,都是以字符串形式提交给服务器。而Java是强类型语言,要想接收客户端提交的信息,就必须将这些信息转换成相应的Java数据类型拦截器及拦截器栈n拦截器是一个能在Action执行的前后执行的代码,也可以把若干个拦截器连在一起,组成拦截器栈。
9、n使用自定义的拦截器配置在struts配置文件的Action中,还要引入defaultStack,否则会造成若干重要功能的缺失,如,使用了modelDriven的Action将不能获取到form表单中字段的值。n例:adminDefaultStackindexActionloginInterceptordefaultStack拦截器拦截器栈拦截器及拦截器栈n例:Struts 2验证器nStruts2输入验证q有些时候,系统需要对用户的输入数据进行验证。比如用户注册时,需要对各个数据项进行数据校验,Struts2提供了一些默认的校验器,比如数字的检测邮箱的检测、字符串长度的检测等等Struts
10、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用户注册页面Stru
11、ts 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枚
12、举类型的每一个值都将映射到protected Enum(String name,int ordinal)构造函数中。在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序EnumSex继承getName()getValues()方法BOYGIRLALL值枚举的使用最简化定义:最简化定义:HibernateORM框架nORMObject/RelationMapping:对象-关系映射qJAVA面向对象q数据库关系型数据库JAVA数据库1.拆解出属性2.拼接SQL字符串构造JAVA对象自动化自动化Hibernate框架组成q数据持久化类(*.java)JAVABeanq数据
13、库表q映射文件(*.hbm.xml)对象到数据库表的映射q配置文件()持久化类数据库表映射映射文件配置文件配置Hibernate框架组成n例:(映射文件)持久化类(User)数据库表(tb_user)映射usernamepassword记录记录usernamepassword属性属性Springn开源的应用框架,为了解决企业应用开发复杂而创建的n致力于提供一个以统一、高效的方式构造整个应用,并可以将单层框架(如Struts、Hibernate等)以最佳的组合糅合在一起,建立一个连贯的体系StrutsHibernateSpringSpringIoCnIoC(InversionofControl)
14、控制反转q不直接(在JAVA中)创建对象,但是(在XML文件中)描述创建它们的方式。q代码中不直接与对象和服务连接,而在配置文件中描述哪一个组件需要哪一项服务,(IoC)容器负责将组件和服务连接到一起ObjAObjBObjCCreateCreate传统的对象组装传统的对象组装ObjAObjBObjCSet()Set()IoC容器创建对象容器创建对象IoC容器ObjAObjBObjCCreateCreateSpringIoCn使用配置文件实现IoC配置文件BeanFactoryBean对象加载getBean()Bean类SpringIoC容器SpringIoCn例:Bean类将Bean类注册到配
15、置文件(bean-config.xml)SpringIoCBean对象获取(无需构造函数,属性值自动注入)SpringIoCnWeb.xml加载Spring配置文件(无需代码中手工加载)SpringIoCnBean中引入其他BeanReftransactionManagerhibernateTemplatesessionFactorySpringIoCn采用注释的方式简化配置文件无需写到配置文件中q简化Bean(类/对象)q程序中所有的XXXAction类及所有的XXXDAO类,实际上都被Spring管理起来(虽然没有出现在配置文件中)SpringIoCq简化Bean中的引入(Ref)属性自动
16、装配(Autowired注释)XXXActionXXXDAOAutowiredXXXDAOHibernateTemplateAutowiredSessionFactoryRefRefRef配置文件applicationContext-Commom.xmlSpringIoCnSpring其他注释qScopeSpring作用域,声明IOC容器中的对象的存活空间qTransactionalSpring事务管理,以保证事务的原子性SpringAOPnAOP(AspectOrientedProgram)面向切面编程q通过减少重复代码模块,提高工作效率q例例:通过调用过程中的植入,可以分离出系统的核心关注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 案例 分析 网络商城
限制150内