??xml version="1.0" encoding="utf-8" standalone="yes"?>手机看片久久,青青草在线免费观看,亚洲最大av网站http://www.aygfsteel.com/conans/category/32947.html你越挣扎我就兴?/description>zh-cnFri, 02 Jan 2009 17:12:41 GMTFri, 02 Jan 2009 17:12:41 GMT60Spring,hibernate,struts的面试笔试题Q含{案Q?/title><link>http://www.aygfsteel.com/conans/articles/249547.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Fri, 02 Jan 2009 07:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/conans/articles/249547.html</guid><description><![CDATA[<div id="wmqeeuq" class="blog_content">Hibernate工作原理及ؓ什么要用?<br /> 原理Q?br /> 1.dq解析配|文?br /> 2.dq解析映信息,创徏SessionFactory<br /> 3.打开Sesssion<br /> 4.创徏事务Transation<br /> 5.持久化操?br /> 6.提交事务<br /> 7.关闭Session<br /> 8.关闭SesstionFactory<br /> <br /> Z么要用:<br /> 1. 对JDBC讉K数据库的代码做了装Q大大简化了数据讉K层繁琐的重复性代码?br /> <br /> 2. Hibernate是一个基于JDBC的主持久化框架Q是一个优U的ORM实现。他很大E度的简化DAO层的~码工作<br /> <br /> 3. hibernate使用Java反射机制Q而不是字节码增强E序来实现透明性?br /> <br /> 4. hibernate的性能非常好,因ؓ它是个轻量框架。映的灉|性很。它支持各种关系数据库,从一对一到多对多的各U复杂关pR?br /> <br /> 2Q?Hibernate是如何gq加?<br /> 1. Hibernate2延迟加蝲实现Qa)实体对象 b)集合QCollectionQ?br /> <br /> 2. Hibernate3 提供了属性的延迟加蝲功能<br /> <br /> 当Hibernate在查询数据的时候,数据q没有存在与内存中,当程序真正对数据的操作时Q对象才存在与内存中Q就实现了gq加载,他节省了服务器的内存开销Q从而提高了服务器的性能?br /> <br /> 3QHibernate中怎样实现cM间的关系?(如:一对多、多对多的关p?<br /> <br /> cMcM间的关系主要体现在表与表之间的关p进行操作,它们都市对对象进行操作,我们E序中把所有的表与c都映射在一P它们通过配置文g中的many-to-one、one-to-many、many-to-many?br /> <br /> 4Q?说下Hibernate的缓存机?br /> <br /> 1. 内部~存存在Hibernate中又叫一U缓存,属于应用事物U缓?br /> <br /> 2. 二~存Q?br /> a) 应用及缓?br /> b) 分布式缓?br /> 条gQ数据不会被W三方修攏V数据大在可接受范围、数据更新频率低、同一数据被系l频J用、非 关键数据<br /> c) W三方缓存的实现<br /> <br /> 5Q?Hibernate的查询方?br /> Sql、Criteria,object comptosition<br /> HqlQ?br /> 1?属性查?br /> 2?参数查询、命名参数查?br /> 3?兌查询<br /> 4?分页查询<br /> 5?l计函数<br /> <br /> 6Q?如何优化HibernateQ?br /> 1.使用双向一对多兌Q不使用单向一对多<br /> 2.灉|使用单向一对多兌<br /> 3.不用一对一Q用多对一取代<br /> 4.配置对象~存Q不使用集合~存<br /> 5.一对多集合使用Bag,多对多集合用Set<br /> 6. l承cM用显式多?br /> 7. 表字D要,表关联不要怕多Q有二~存撑腰<br /> <br /> <br /> 7Q?Struts工作机制Qؓ什么要使用StrutsQ?br /> 工作机制Q?br /> Struts的工作流E?<br /> 在web应用启动时就会加载初始化ActionServlet,ActionServlet?br /> struts-config.xml文g中读取配|信?把它们存攑ֈ各种配置对象<br /> 当ActionServlet接收C个客戯求时,执行如下流E?<br /> -(1)索和用户h匚w的ActionMapping实例,如果不存?p回请求\径无效信?<br /> -(2)如果ActionForm实例不存?创Z个ActionForm对象,把客h交的表单数据保存到ActionForm对象?<br /> -(3)Ҏ配置信息军_是否需要表单验?如果需要验?p用ActionForm的validate()Ҏ;<br /> -(4)如果ActionForm的validate()Ҏq回null或返回一个不包含ActionMessage的ActuibErrors对象, pC单验证成?<br /> -(5)ActionServletҎActionMapping所包含的映信息决定将h转发l哪个Action,如果相应?Action实例不存?先创徏q个实例,然后调用Action的execute()Ҏ;<br /> -(6)Action的execute()Ҏq回一个ActionForward对象,ActionServlet在把客户h转发l?ActionForward对象指向的JSPlg;<br /> -(7)ActionForward对象指向JSPlg生成动态网?q回l客?<br /> <br /> Z么要用:<br /> JSP、Servlet、JavaBean技术的出现l我们构建强大的企业应用pȝ提供了可能。但用这些技术构建的pȝ非常的繁乱,所以在此之上,我们需要一个规则、一个把q些技术组lv来的规则Q这是框架QStruts便应q而生?br /> <br /> ZStruts开发的应用?cȝ件构成:控制器组件、模型组件、视囄?br /> <br /> 8Q?Struts的validate框架是如何验证的Q?br /> 在struts配置文g中配|具体的错误提示Q再在FormBean中的validate()Ҏ具体调用?br /> <br /> 9Q?说下Struts的设计模?br /> MVC模式: web应用E序启动时就会加载ƈ初始化ActionServler。用h交表单时Q一个配|好的ActionForm对象被创建,q被填入表单相应的数据,ActionServlerҎStruts-config.xml文g配置好的讄军_是否需要表单验证,如果需要就调用ActionForm?ValidateQ)验证后选择请求发送到哪个ActionQ如果Action不存在,ActionServlet会先创徏q个对象Q然后调?Action的executeQ)Ҏ。ExecuteQ)从ActionForm对象中获取数据,完成业务逻辑Q返回一个ActionForward对象QActionServlet再把客户h转发lActionForward对象指定的jsplgQActionForward对象指定的jsp生成动态的|页Q返回给客户?br /> <br /> 10Q?spring工作机制及ؓ什么要?<br /> 1.spring mvch有的h都提交给DispatcherServlet,它会委托应用pȝ的其他模块负责负责对hq行真正的处理工作?br /> 2.DispatcherServlet查询一个或多个HandlerMapping,扑ֈ处理h的Controller.<br /> 3.DispatcherServlet误求提交到目标Controller<br /> 4.Controllerq行业务逻辑处理后,会返回一个ModelAndView<br /> 5.Dispathcher查询一个或多个ViewResolver视图解析?扑ֈModelAndView对象指定的视囑֯?br /> 6.视图对象负责渲染q回l客L?br /> <br /> Z么用Q?br /> {AOP 让开发h员可以创建非行ؓ性的x点,UCؓ横切x点,q将它们插入到应用程序代码中。?AOP 后,公共服务 Q比如日志、持久性、事务等Q就可以分解成方面ƈ应用到域对象上,同时不会增加域对象的对象模型的复杂性?br /> IOC 允许创徏一个可以构造对象的应用环境Q然后向q些对象传递它们的协作对象。正如单?倒置 所表明的,IOC 像?q来?JNDI。没有用一堆抽象工厂、服务定位器、单元素QsingletonQ和直接构造(straight constructionQ,每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaboratorQ?br /> Spring即一个AOP框架Q也是一IOC容器?Spring 最好的地方是它有助于您替换对象。有?SpringQ只要用 JavaBean 属性和配置文g加入依赖性(协作对象Q。然后可以很Ҏ地在需要时替换hcM接口的协作对象。}<br /> <br /> <br /> <br /> <br /> Spring 框架是一个分层架构,?7 个定义良好的模块l成。Spring 模块构徏在核心容器之上,核心容器定义了创建、配|和理 bean 的方式,如图 1 所C?br /> <br /> l成 Spring 框架的每个模块(或组Ӟ都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下Q?br /> <br /> ?核心容器Q核心容器提?Spring 框架的基本功能。核心容器的主要lg?BeanFactoryQ它是工厂模式的实现。BeanFactory 使用控制反{ QIOCQ模式将应用E序的配|和依赖性规范与实际的应用程序代码分开?br /> <br /> ?Spring 上下文:Spring 上下文是一个配|文Ӟ?Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能?br /> <br /> ?Spring AOPQ通过配置理Ҏ,Spring AOP 模块直接面向方面的~程功能集成C Spring 框架中。所以,可以很容易地?Spring 框架理的Q何对象支?AOP。Spring AOP 模块为基?Spring 的应用程序中的对象提供了事务理服务。通过使用 Spring AOPQ不用依?EJB lgQ就可以声明性事务管理集成到应用E序中?br /> <br /> ?Spring DAOQJDBC DAO 抽象层提供了有意义的异常层次l构Q可用该l构来管理异常处理和不同数据库供应商抛出的错误消息。异常层ơ结构简化了错误处理Qƈ且极大地降低了需要编写的异常代码数量Q例如打开和关闭连接)。Spring DAO 的面?JDBC 的异帔R从通用?DAO 异常层次l构?br /> <br /> ?Spring ORMQSpring 框架插入了若q个 ORM 框架Q从而提供了 ORM 的对象关pdP其中包括 JDO、Hibernate ?iBatis SQL Map。所有这些都遵从 Spring 的通用事务?DAO 异常层次l构?br /> <br /> ?Spring Web 模块QWeb 上下文模块徏立在应用E序上下文模块之上,为基?Web 的应用程序提供了上下文。所以,Spring 框架支持?Jakarta Struts 的集成。Web 模块q简化了处理多部分请求以及将h参数l定到域对象的工作?br /> <br /> ?Spring MVC 框架QMVC 框架是一个全功能的构?Web 应用E序?MVC 实现。通过{略接口QMVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText ?POI?br /> <br /> Spring 框架的功能可以用在Q?J2EE 服务器中Q大多数功能也适用于不受管理的环境。Spring 的核心要ҎQ支持不l定到特?J2EE 服务的可重用业务和数据访问对象。毫无疑问,q样的对象可以在不同 J2EE 环境 QWeb ?EJBQ、独立应用程序、测试环境之间重用?br /> <br /> IOC ?AOP<br /> <br /> 控制反{模式Q也UC依赖性介入)的基本概忉|Q不创徏对象Q但是描q创建它们的方式。在代码中不直接与对象和服务q接Q但在配|文件中描述哪一个组仉要哪一Ҏ务。容器(?Spring 框架中是 IOC 容器Q?负责这些联pd一赗?br /> <br /> 在典型的 IOC 场景中,容器创徏了所有对象,q设|必要的属性将它们q接在一P军_什么时间调用方法。下表列Z IOC 的一个实现模式?br /> <br /> <br /> <br /> <br /> Spring 框架?IOC 容器采用cd 2 和类? 实现?br /> <br /> <br /> 面向斚w的编E?br /> <br /> 面向斚w的编E,?AOPQ是一U编E技术,它允许程序员Ҏ切关注点或横切典型的职责分界U的行ؓQ例如日志和事务理Q进行模块化。AOP 的核心构造是斚wQ它那些媄响多个类的行为封装到可重用的模块中?br /> <br /> AOP ?IOC 是补充性的技术,它们都运用模块化方式解决企业应用E序开发中的复杂问题。在典型的面向对象开发方式中Q可能要日志记录语句放在所有方法和 Java cM才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,q以声明的方式将它们应用到需要日志的lg上。当Ӟ优势是 Java cM需要知道日志服务的存在Q也不需要考虑相关的代码。所以,?Spring AOP ~写的应用程序代码是松散耦合的?br /> <br /> AOP 的功能完全集成到?Spring 事务理、日志和其他各种Ҏ的上下文中?br /> <br /> IOC 容器<br /> <br /> Spring 设计的核心是 org.springframework.beans 包,它的设计目标是与 JavaBean lg一起用。这个包通常不是qL接用,而是由服务器其用作其他多数功能的底层中介。下一个最高抽象?BeanFactory 接口Q它是工厂设计模式的实现Q允讔R过名称创徏和检索对象。BeanFactory 也可以管理对象之间的关系?br /> <br /> BeanFactory 支持两个对象模型?br /> <br /> ?单?模型提供了具有特定名U的对象的共享实例,可以在查询时对其q行索。Singleton 是默认的也是最常用的对象模型。对于无状态服务对象很理想?br /> <br /> ?原型 模型保每次索都会创建单独的对象。在每个用户都需要自q对象Ӟ原型模型最适合?br /> <br /> bean 工厂的概忉| Spring 作ؓ IOC 容器的基。IOC 处理事情的责Q从应用程序代码{Ud框架。正如我在下一个示例中演示的那PSpring 框架使用 JavaBean 属性和配置数据来指出必设|的依赖关系?br /> <br /> BeanFactory 接口<br /> <br /> 因ؓ org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对各U底层存储方法实现。最常用?BeanFactory 定义?XmlBeanFactoryQ它Ҏ XML 文g中的定义装入 beanQ如清单 1 所C?br /> <br /> 清单 1. XmlBeanFactory<br /> <br /> BeanFactory factory = new XMLBeanFactory(new FileInputSteam("mybean.xml"));<br /> <br /> ?XML 文g中定义的 Bean 是被消极加蝲的,q意呛_需?bean 之前Qbean 本n不会被初始化。要?BeanFactory ?beanQ只需调用 getBean() ҎQ传入将要检索的 bean 的名U即可,如清?2 所C?br /> <br /> 清单 2. getBean()<br /> <br /> MyBean mybean = (MyBean) factory.getBean("mybean");<br /> <br /> 每个 bean 的定义都可以?POJO Q用cd?JavaBean 初始化属性定义) ?FactoryBean。FactoryBean 接口Z?Spring 框架构徏的应用程序添加了一个间接的U别?br /> <br /> IOC CZ<br /> <br /> 理解控制反{最单的方式是看它的实际应用。在对由三部分组成的 Spring pd 的第 1 部分q行ȝӞ我用了一个示例,演示了如何通过 Spring IOC 容器注入应用E序的依赖关p(而不是将它们构徏q来Q?br /> <br /> 我用开启在U信用帐L用例作ؓL。对于该实现Q开启信用帐戯求用户与以下服务q行交互Q?br /> <br /> ?信用U别评定服务Q查询用L信用历史信息?br /> <br /> ?q程信息链接服务Q插入客户信息,客户信息与信用卡和银行信息q接hQ以q行自动借记Q如果需要的话)?br /> <br /> ?电子邮g服务Q向用户发送有关信用卡状态的电子邮g?br /> <br /> 三个接口<br /> <br /> 对于q个CZQ我假设服务已经存在Q理想的情况是用松散耦合的方式把它们集成在一赗以下清单显CZ三个服务的应用程序接口?br /> <br /> 清单 3. CreditRatingInterface<br /> <br /> public interface CreditRatingInterface {<br /> public boolean getUserCreditHistoryInfo<wbr>rmation(ICustomer iCustomer);<br /> }<br /> <br /> 清单 3 所C的信用U别评定接口提供了信用历史信息。它需要一个包含客户信息的 Customer 对象。该接口的实现是?CreditRating cL供的?br /> <br /> 清单 4. CreditLinkingInterface<br /> <br /> public interface CreditLinkingInterface {<br /> <br /> public String getUrl();<br /> public void setUrl(String url);<br /> public void linkCreditBankAccount() throws Exception ;<br /> <br /> }<br /> <br /> 信用链接接口信用历史信息与银行信息Q如果需要的话)q接在一Pq插入用L信用卡信息。信用链接接口是一个远E服务,它的查询是通过 getUrl() Ҏq行的。URL ?Spring 框架?bean 配置机制讄Q我E后会讨论它。该接口的实现是?CreditLinking cL供的?br /> <br /> 清单 5. EmailInterface<br /> <br /> public interface EmailInterface {<br /> <br /> public void sendEmail(ICustomer iCustomer);<br /> public String getFromEmail();<br /> public void setFromEmail(String fromEmail) ;<br /> public String getPassword();<br /> public void setPassword(String password) ;<br /> public String getSmtpHost() ;<br /> public void setSmtpHost(String smtpHost);<br /> public String getUserId() ;<br /> public void setUserId(String userId);</div> <div id="wmqeeuq" class="blog_content">转自|络?/div> <img src ="http://www.aygfsteel.com/conans/aggbug/249547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/conans/" target="_blank">CONAN</a> 2009-01-02 15:13 <a href="http://www.aygfsteel.com/conans/articles/249547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts的FormFile与Commons-FileUpload控g使用心得?/title><link>http://www.aygfsteel.com/conans/articles/214085.html</link><dc:creator>CONAN</dc:creator><author>CONAN</author><pubDate>Thu, 10 Jul 2008 11:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/conans/articles/214085.html</guid><description><![CDATA[     摘要: 前一D|间刚来公?看到一个项目中以前有h写的struts代码。是使用了FormFile来处理关于文件上传的模块。但是用力一D|间后Q发现出问题了。写完的q个模块Q上传文件是没有问题的,但是当服务器的空间较的时候,I一个比较大的文件就出问题了Q文件还没有上传完,抛Z个错误的面,报告上传模块Z问题Q而且是Tomcat默认的出错页面?于是惛_法,修改Q查看源代码Q发现原来写q段代码的h是默...  <a href='http://www.aygfsteel.com/conans/articles/214085.html'>阅读全文</a><img src ="http://www.aygfsteel.com/conans/aggbug/214085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/conans/" target="_blank">CONAN</a> 2008-07-10 19:25 <a href="http://www.aygfsteel.com/conans/articles/214085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">۳</a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank">Ƶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">غ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ҽ</a>| <a href="http://" target="_blank">ƽ½</a>| <a href="http://" target="_blank">⴨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">«Ϫ</a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˳</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>