




免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.strust的Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因2.struts中的几个关键对象的作用(说说几个关键对象的作用) ActionServlet类控制导航流. ActionServlet根据URI来决定哪个Action类被用于处理请求,Action可以校验输入,并访问业务层以便从数据库检索信息. Action需要知道页面提交了哪些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到哪个ActionForm中并传入Action. Action在完成业务逻辑后,返回一个ActionForward对象,ActionServlet根据ActionForward对象中的路径来调用页面完成响应. Struts将这些信息绑定在一个ActionMapping对象中,一个ActionMapping对应一个请求URI,当请求路径到达的时候,ActionServlet就会查询ActionMapping对象,ActionMapping对象将告诉ActionServlet哪个Action类会被调用,哪个ActionForm类被用于传递页面数据以及哪些ActionForward将被用于转向. 有关Action,ActionForm,ActionForward等信息,通过struts-config.xml配置文件来定义.3.spring 说说AOP和IOC的概念以及在spring中是如何应用的 4.Hibernate有哪几种查询数据的方式 (1)导航对象图查询 (2)OID查询 (3)HQL (4)QBC (5)本地SQL5.load()和get()的区别 load加载方法:Java代码 1. Usersuser=(Users)session.load(Users.class,userId);Users user = (Users)session.load(Users.class, userId); get加载方法:Java代码 1. Usersuser=(Users)session.get(Users.class,userId);Users user = (Users)session.get(Users.class, userId);两加载方法区别:区别1:如果数据库中,没有userId的对象。如果通过get方法加载,则返回的是一个null;如果通过load加载,则返回一个代理对象,如果后面代码如果调用user对象的某个属性(比如user.getPassword())会抛出异常:org.hibernate.ObjectNotFoundException;区别2:load支持延迟加载,get不支持延迟加载。也就是说: Java代码 1. Usersuser=(Users)session.load(Users.class,userId);Users user = (Users)session.load(Users.class, userId);这句代码不会去执行数据库查询,只有用到user时才会去执行数据库查询。而: Java代码 1. Usersuser=(Users)session.get(Users.class,userId);Users user = (Users)session.get(Users.class, userId);则立即去执行数据库查询。 所以Users user = (Users)session.load(Users.class, userId);不会执行任何sql。注意: Java代码 1. Usersuser=(Users)session.load(Users.class,userId); 2. System.out.println(user.getId();Users user = (Users)session.load(Users.class, userId);System.out.println(user.getId();上面这2句代码,不会去执行数据库操作。因为load后会在hibernate的一级缓存里存放一个map对象,该map的key就是userId的值,但是当你getId()时,它会去一级缓存里拿map的key值,而不去执行数据库查询。所以不会报任何错。不会执行任何数据库操作。1. Struts的工作原理 在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向 ActionSevlet, ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此 FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的 FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。2. Struts优点与缺点 Struts是开源软件,使开发者能更深入的了解其内部实现机制。 Struts 优点:业界标准(很多成功案例),学习资源丰富。 Struts的优点主要集中体现在两个方面:Taglib和页面导航。 a、利用Struts提供的taglib可以大大节约开发时间。 b、维护扩展比较方便。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。 c、表现与逻辑分离 d、表单验证解决了请求数据的验证问题,增强了系统健壮性。 e、便于团队开发 Struts缺点:a、大量的使用标签,对于初学者难度较大。 b、ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)3. Struts提供了几个标签库?都是什么标签库?Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。HTML 标签 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用Logic 标签 管理条件产生的输出和对象集产生的循环Template 标签 随着Tiles框架包的出现,此标记已开始减少使用Nested 标签 增强对其他的Struts 标签的嵌套使用的能力. 4. Tiles框架是什么? Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。1、 概述struts,以及struts如何实现MVC架构的? 答:struts framework是一种基于java的技术,Web应用程序开发人员通过struts framework即可充分利用面向对象设计、代码重用以及编写一次、到处运行的优点。Struts提供了一种创建Web应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。Struts采用jsp作为MVC的视图由ActionServlet具体指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的每个入口点都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射为特定的JAVA类以进行相应的处理,控制器还指定下一个视图的位置。Struts中的模型主要指的就是javabean,它是模型的代表,主要封装数据和业务逻辑。 Struts的处理流程: l 控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。 l 控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。 l 在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已。还可以在 ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的Actionerrors对象。 l 执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该 ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过 JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。 2、 概述MVC体系结构 答:MVC包括三类对象,model是应用对象,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。 在MVC体系中,模型通常被称为业务逻辑,是真正完成任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型 在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。 3、 多线程的优点 答:可分两方面来答: l 相对于单线程而言 : 可以响应多任务的并发操作。 多线程取消了主循环和轮流检测机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中一个线程阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。 l 相对于进程而言:(可以答也可以不答) 它所要求的开销比较小,转换成本较小。 所有线程共享同一地址空间,相互协作。 彼此之间通信很容易。 4、 EJB概述 答:EJB是企业级的JavaBean,它提供了构建企业级业务逻辑的一种组件模型。 EJB分为三种:Session Bean Entity Bean Message-Driven Bean 三种,其中Session Bean分为有状态和无状态Session Bean两种Entity Bean分为容器管理的Entity Bean ( CMP ) 和 Bean管理的 Entity Bean ( BMP )。每一个EJB由一个远程接口、一个本地接口和一个EJB容器实现组成,远程接口声明了提供给EJB客户调用的各种应用方法,本地接口声明了创建新的 EJB实例的create方法、寻找EJB实例的查找(finder)方法以及除EJB实例的remove方法。EJB容器提供了EJB的运行环境和生命周期的管理。 5、 用java访问Oracle数据库、取得记录并输出到界面 答:. Class.forName(oracle.jdbc.driver.OracleDriver); Connection c.getConnection( url username password ); Statement stmt=conn.createStatement(); String str=select * from table; ResultSet rs=stmt.executeQuery(str); While(rs.next() . rs.close(); stmt.close(); conn.close(); 6、 概述java垃圾回收机制 答:它的工作原理如下: 当不存在对一个对象的引用时,我们就假定不再需要那个对象,那个对象所占有的存储单元可以被收回,可通过System.gc()方法回收,但一般要把不再引用的对象标志为null为佳。 7、接口有什么优点 答:接口有以下优点: l 接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。 l 利用接口可达到实现多继承的目地。 l 可以在不暴露对象的类的前提下,暴露对象的编程接口。 l 不用强迫类关系在无关类中截获相似处(采用适配器就可以了)。 l 声明想执行的一个或多个方法。 8、 ArrayList 与 Vector 的区别 答:主要从两个方面来说明: l 安全、效率方面 如果要实现同步安全,则要用Vector,否则则用ArrayList,因为ArrayList不考虑同步安全的问题,所以效率要高些。 l 资源方面 当两者的容量已满时,它们都会自动增长其容量,但Vector是按其容量的一倍增长,而ArrayList则按其容量的50%增加,所以Vector更能节省资源。 1. Hibernate工作原理及为什么要用?原理:1. 读取并解析配置文件2. 读取并解析映射信息,创建SessionFactory3. 打开Sesssion4. 创建事务Transation5. 持久化操作6. 提交事务7. 关闭Session8. 关闭SesstionFactory为什么要用:1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。2 Hibernate是如何延迟加载?1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。3 Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、4 说下Hibernate的缓存机制1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存2. 二级缓存:a) 应用及缓存b) 分布式缓存条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据c) 第三方缓存的实现5 Hibernate的查询方式Sql、Criteria,object comptositionHql:1、 属性查询2、 参数查询、命名参数查询3、 关联查询4、 分页查询5、 统计函数6 如何优化Hibernate?1. 使用双向一对多关联,不使用单向一对多2. 灵活使用单向一对多关联3. 不用一对一,用多对一取代4. 配置对象缓存,不使用集合缓存5. 一对多集合使用Bag,多对多集合使用Set6. 继承类使用显式多态7. 表字段要少,表关联不要怕多,有二级缓存撑腰7 Struts工作机制?为什么要使用Struts?工作机制:Struts的工作流程: 在web应用启动时就会加载初始化ActionServlet,ActionServlet从 struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 当ActionServlet接收到一个客户请求时,将执行如下流程. -(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息; -(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中; -(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; -(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功; -(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; -(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件; -(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;为什么要用:JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件8 Struts的validate框架是如何验证的?在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。9 说下Struts的设计模式MVC模式: web应用程序启动时就会加载并初始化ActionServler。用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet会先创建这个对象,然后调用Action的execute()方法。Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合作伙伴合同全文
- 2025年股权转让合同
- 企业托管经营合同范本
- 小型改造合同范本
- 特许经营协议合同范本
- 家电房屋租赁合同范本
- 房租转卖合同范本
- 水利代建合同范本
- 运输承揽合同范本
- 空调简维修合同范本
- 钻孔桩安全培训
- 2025年山东高考化学真题及答案
- 2025年云南省中考道德与法治试卷真题(含标准答案及解析)
- 子宫腺肌症教学护理查房
- 操作手册/西门子/软件/Simotion Programming-MCC
- DBJ53T-44-2021云南省建筑工程资料管理规程
- 五金件盐雾测试报告
- 肛管鳞状细胞癌临床诊疗要点
- 选择测试题大全及答案
- 陕西西安工业投资集团有限公司招聘笔试题库2025
- 废旧船买卖合同协议书
评论
0/150
提交评论