Java高级框架应用开发案例教程Struts2+Spring+Hibernate

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章P741-81.什么是MVC模式?模型(Model)视图(View)控制器(controller)2106162.Struts2的工作原理?1)浏览器发送请求2)核心控制器FilterDispatcher根据请求决定调用合适的Action。3)WebWork的拦截器链自动对请求应用通用功能,例如验证等功能。4)回调Action的execute方法。实际上,因为Action只是一个控制器,它会调用业务逻辑组件(Model)来处理用户的请求。5)输出结果到页面3.Struts2的核心控制器FilterDispaer如何配置?filter!--配置struts2核心Filter的名字--filter-namestruts/filter-name!--配置struts2核心Filter的实现类--filter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-classinit-param!--配置struts2框架默认加载的Action包结构--param-nameactionpackages/param-nameparam-valueorg.apache.struts2.showcase.person/param-value/init-param!--配置struts2框架的配置提供者类--init-paramparam-nameconfigProviders/param-nameparam-valuecom.ascent.MyConfigurationProvider/param-value/init-param/filter4.Struts2的Action类如何开发?对于Struts2应用而言,Action是应用系统的核心,我们也称Action为业务控制器。开发者需要提供大量的Action类,并在strust.xml文件配置Action。5.Struts2的配置文件struts.xml如何开发?主要配置标签有哪几个?strutspackagename=struts2extends=struts-defaultactionname=loginclass=com.ascent.struts2.action.LoginActionresultname=error/error.jsp/resultresultname=success/welcome.jsp/result/action/package/struts6.struts.xml配置文件中如何配置Action类?actionname=usrLoginActionclass=com.ascent.action.UsrLoginActionresultname=success_1/product/products.jsp/result/action7.配置Action的result标签的类型有哪几种?局部结果:将result…/作为action…./元素配置和全局结果:将result…/作为global-result…./元素子元素配置8.配置文件配置Action如何使用通配符?在配置action…/元素时,可以指定name、class和method属性,这3个属性都可支持通配符,这种使用通配符的方式是动态方法调用的一种形式。当我们使用通配符定义Action的name属性时,相当于一个action元素定义多个逻辑Action。第四章P1141-51.如何在JSP页面导入Struts2标签库?加入taglib标签%@taglibprefix=suri=/struts-tags%2.简述If标签的用法。执行基本的条件流转,判断字符串,判断数值,判断为空的问题3.简述Iterator迭代标签的用法。用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)4.如何使用Struts2标签编写一个登录的表单?s:formaction=userLoginActionmethod=posts:textfiledname=usernamelabel=用户名/s:textfileds:passwordname=passwordlabel=密码/s:passwords:submitvalue=登录/s:submit/s:form5.使用OGNL如何取request或session范围保存的数据?s:propertyvalue=#request.name/或s:propertyvalue=#session.name/第五章P1491-4,5-81.Struts2如何实现国际化的流程?2.Struts2全局国际化资源文件如何配置?只需要配置struts.custom.il8n.resources常量即可3.Struts2类范围国际化资源文件如何配置?4.Struts2页面使用哪个标签获取资源文件信息?s:i18ns:text…./5.Struts2validate验证流程如何?1)通过转换器将请求参数转换成相应的Bean属性;2)判断转换过程是否出现异常。如果有,则将其保存到ActionContext中,conversionError拦截器再封装为fieldError;如果没有,进行下一步;3)通过反射(Reflection)来调用validateXxx()方法(可选方法。其中,Xxx表示Action的方法名);4)调用validate()方法;5)如果经过上述步骤没有出现fieldError,则调用Action方法;如果有,则会跳过Action方法,通过国际化将fieldError输出到页面。6.Struts2验证框架验证流程如何?1).指定要验证的目标Action——ValidationAction;2).根据命名规则,找到目标Action对应的ValidationAction-validation.xml文件,框架为该类创建了一个验证对象,这个验证对象基于XML文件;3).验证器对输入的数据产生作用;4).如果验证失败,错误信息被添加到内部序列中;5).当所有的验证器都已经执行后,如果框架发现有错误信息产生,它寻找“input”结果对应的页面,而不调用Action类;6).如果通过验证,调用Action的方法,返回“success”对应的结果。7.Struts2验证框架的开发流程如何?第六章P1821-3,5,61.Struts2拦截器有何作用?在AOP(Aspect-OrientedProgramming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。2.Struts2拦截器如何定义?拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。3.Struts2拦截器栈如何定义?拦截器链(InterceptorChain,在Struts2中称为拦截器栈InterceptorStack)。拦截器链就是将拦截器按一定的顺序联结成一个链条。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。4.Struts2上传下载的拦截器如何配置?actionname=”Upload”class=”com.ascent.upload.action.UpLoadAction”interceptor-refname=fileUpload!--设置上传文件类型--paramname=allowedTypesimage/bmp,image/png,image/jpg,image/gif,image/pjpeg/param!--设置上传文件大小--paramname=maximumSize200000/param/interceptor-ref!--必须显示配置引用struts默认的拦截器栈:defaultStack--interceptor-refname=defaultStack/interceptor-ref5.Struts2上传拦截器有哪些重要的属性配置?allowedTypes:指定文件类型,类型间用英文逗号隔开maximumSize:指定上传文件的最大值,单位为字节第七章P2211-4,6,71.Hibernate框架的体系结构如何?会话工厂SessionFactory对属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照。它是Session的工厂,是ConnectionProvider的客户。可能持有一个可选的(第二级)数据缓存,可以在进程级别或集群级别保存可以在事物中重用的数据。会话Session单线程,生命期短暂的对象,代表应用程序和持久化层之间的一次对话。封装了一个JDBC连接。也是Transaction的工厂。保存有必需的(第一级)持久化对象的缓存,用于遍历对象图,或者通过标识符查找对象。持久化对象(PersistentObject)及其集合(Collection)生命周期短暂的单线程的对象,包含了持久化状态和商业功能。它们可能是普通的JavaBeans/POJOs,唯一特别的是他们从属于且仅从属于一个Session。一旦Session被关闭,他们都将从Session中取消联系,可以在任何程序层自由使用(比如,直接作为传送到表现层的DTO,数据传输对象)。临时对象(TransientObject)及其集合(Collection)目前没有从属于一个Session的持久化类的实例。他们可能是刚刚被程序实例化,还没有来得及被持久化,或者是被一个已经关闭的Session所实例化的。事务,Transaction(可选)单线程,生命期短暂的对象,应用程序用它来表示一批不可分割的操作。是底层的JDBC,JTA或者CORBA事务的抽象。一个Session某些情况下可能跨越多个Transaction事务。ConnectionProvider(可选)JDBC连接的工厂和池。从底层的Datasource或者DriverManager抽象而来。对应用程序不可见,但可以被开发者扩展/实现。TransactionFactory(可选)事务实例的工厂。对应用程序不可见,但可以被开发者扩展/实现。2.Hibernate框架的加载流程如何?(1)启动Hibernate(2)构建Configuration实例,初始化实例中的所有变量:Configurationcfg=Configuration.configure();(3)加载hibernate.cfg.xml文件至cfg实例所分配的内存(4)通过hibernate.cfg.xml文件中格的mapping节点进行配置,并加载.hbm.xml文件至cfg实例中(5)由cfg实例构建一个SessionFactory实例:SessionFactorysf=cfg.buildSessionFactory();(6)由上面得到的sf实例创建Session连接:Sessions=sf.openSession();(7)由Session实例创建事务操作接口Transaction的一个实例:Transactiontx=s.beginTransaction();(8)通过Session接口提供的各种方法操作对数据库的访问(9)提交数据库操作结果:tx.commit();(10)关闭Session连接:3.什么是ORM?这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去4.Hibernate配置文件hibernate.cfg.xml核心

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功