




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、简述J2EE的四层模型。运行在客户端机器上的客户层组件;运行在J2EE服务器上的Web层组件;运行在J2EE服务 器上的业务逻辑层组件 ; 运行在 EIS 服务器上的企业信息系统层软件2、什么是对象持久化?即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要 应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。3、简述一下ORMAPPING为什么我们使用它?ORM(Object Relational Mapping) 是一种为了解决面向对象与关系型数据库存在的互不匹 配的现象的技术。简单说:ORM是通过使用描述对象和数据库
2、之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形 式。原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射 以及对象的持久化问题。4、简述一下如何使用 Hibernate 实现对象持久化的过程(可画图或用伪码描 述)STEP 1:创建 Configuration 对象。在这一步中主要为了进行配置文件的装载操作,读取 所有的配置文件并进行解析、STEP 2: 创建 SessionFactory 对象。通过创建好的 Configuration 对象可以创建一个 sessionFactory 对象的实例,同时是生成
3、Session 对象实例的工厂,他在整个应用中应该 是, 唯一的。STEP 3:创建 Session 对象。 Session 对象类似于数据库的连接对象,可以理解为与数据 库建立的一个连接,但是他的功能要比 JDBC中的Connection对象丰富很多。STEP 4:开始一个事务。在 Java 中定义一个事务操作的开始,这是使用 Hibernate 进行持 久化操作必不可少的步骤Java 对象。STEP 5:进行持久化操作。在这个步骤中可以读取或者保存STEP 6:结束事务。在操作完成之后还要进行显式的结束事务的操作。STEP 7:关闭 Session 。类似于释放数据库的连接。5、为什么要实
4、现序列化?1、序列化以某种存储形式使自定义对象持久化 2、序列化将对象转换为可传输方式从一个地方传递到另一个地方 3、序列化使程序更具维护性6、比较一下 sessionFactory 中的 opensession ()和 getcurrentsession ()方法1、getCurrentSession 创建的 session 会和绑定到当前线程 , 而 openSession 不会。2 、getCurrentSession 创建的线程会在事务回滚或事物提交后自动关闭 , 而 openSession 必须手动关闭7、比较一下 session 中的 load ()和 get ()方法,以及如何保
5、证每次都是 从数据库读取而不是在缓存中读?load ()和 get ()方法均可以根据指定的实体类和 id 从数据库读取记录,并返回与之对 应的实体对象。其区别在于:如果未能发现符合条件的记录, get 方法返回 null ,而 load 方法会抛出一个 ObjectNotFoundException 。Load 方法可返回实体的代理类实例,而 get 方法永远直接返回实体类。load 方法可以充分利用内部缓存和二级缓存中的现有数据,而 get 方法则仅仅在内部缓存 中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。8、Action 接受用户参数输入,主要有哪几种
6、方式?我们常用的是哪一种?属性接收参数;2. Domain modal(域模型)接收参数;driven接收参数。常用第一种跟第 二种9、在 struts 中实现一个 action 有哪几种方式?最常用的是哪种?1. 定义一个普通的类,类中只要有一个 public String execute() 方法且返回一个字符串 即可。2. 定义一个类,实现 Action 接口,这个包的3 继承这个类。最常用的是第三种10、在中 Result 的 type 常用的有四种类型1) dispatcher 2 ) redirect 3 ) chain 4 ) redirectAction哪些是服务器跳转?哪些是
7、客户端跳转?dispatcher 和 chain 是服务器端跳转,所以客户端只发起一次请求redirect 和 redirectAction 是客户端跳转,所以客户端发起两次请求。11、j2ee 是技术还是平台还是框架?它主要包含哪些技术,列举并简单描述2到 3个技术?J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括JDBC JNDI、RM、JMS EJB JTA等技术。JDBC:是一种用于执行SQL语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。RMI:RMI协议调用远程对象上的方法。它使用了序
8、列化方式在客户端和服务器端传递数 据。RMI是一种被EJB使用的更底层的协议。12、MVC勺各个部分都有哪些技术来实现?如何实现?MVC是 Model-View-Controller 的简写。"Model"代表的是应用的业务逻辑(通过JavaBean, EJB组件实现),"View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个 Servlet ),通过这种设计模型把 应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。13、什么是 JNDI?JNDI是SU
9、N公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通 过不同的访问提供者接口 JNDI SPI 的实现,由管理者将 JNDI API 映射为特定的命名服务 和目录系统,使得 Java 应用程序可以和这些命名服务和目录服务之间进行交互。14、举例并简单描述 2 到 3 种动态网页开发技术。1、PHP是英文超文本预处理语言 Hypertext Preprocessor 的缩写。PHP是一种HTML内 嵌式的语言,是一种在服务器端执行的嵌入 HTML文档的脚本语言,语言的风格有类似于 C 语言,被广泛地运用。2、ASP它是微软公司开发的代替 CGI脚本程序的一种应用,它可以
10、与数据库和其它程序 进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asP,现在常用于各种动态网站中。1浏览器会将请求打包成http请求数据包,发送给web服务器,2. web服务器中的servlet了请求数据),同时创建个引擎解析请求并封装为一个 HttpServletRequest 对象(包含HttpServletResponse 对象。3. servlet 调用 servlet 的 service() 方法,并将 HttpServletReque , HttpServletResponse 对象作为参数传递给 servlet 实例4 servlet可以从 HttpServ
11、letRequest 对象中获得请求数据,并处理,当然, servlet也可能要访问数据库。然后将处理之后的结果放到 HttpServletResponse 中。5 se rvlet 引擎从 HttpServletResponse 中取数据,并将数据打包成 http 数据包发送给 浏览器。16、开发 servlet 服务器程序三种方法。开发 servlet 有三种方法: a, 实现 servlet 接口; b, 继承 GenericServet; c, 继承 HttpServlet17、通过 httpservlet 去开发 servlet, 需要重写 doGet 和 doPost 方法。这是
12、常用的方式,请简述 Get 与 Post 方法的区别。1 )get 是从服务器上获取数据, post 是向服务器传送数据。在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置 在 HTML HEADE内提交。2)对于 get 方式,服务器端用获取变量的值,对于 post 方式,服 务器端用获取提交的数据。GET方式提交的数据最多只能有1024字节,而POSTU没有此限制。(4)是使用post 为好。安全性问题。使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,还18、200302请求的资源现在临时从不同的 URI响应请求。简述 http
13、返回包中的状态码 200,302,404,500 的意义。请求已成功,请求所希望的响应头或数据体将随此响应返回。404500请求失败,请求所希望得到的资源未被在伺服器上发现。伺服器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理19、简述请求重定向()和请求转发( getRequestDispatcher forward )的 区别。1、forward。只能将请求转发给同一个 Web应用中的组件,而sendRedirect()方法不仅可 以重定向到当前应用程序中的其他资源,还可以重定向到其他站点的资源。2、sendRedirectO方法重定向的访问过程结束后,浏览器地址栏中显示的URL会
14、发生改变,由初始的URL地址变成重定向的目标URL而调用forwardO方法的请求转发过程结束 后,浏览器地址栏保持初始的 URL地址不变。3、forward() 方法的调用者与被调用者之间共享相同的 request 对象和 response 对象;而 sendRedirect() 方法调用者和被调用者使用各自的 request 对象和 response 对象,它们属 于两个独立的请求和响应过程。20、Hibernate 拒绝连接、服务器崩溃的原因?最少写三个?1. db 没有打开2. 网络连接可能出了问题3. 连接配置错了4. 驱动的 driver ,url 是否都写对了5. LIB 下加入
15、相应驱动,数据连接代码是否有误6. 数据库配置可能有问题7. 当前联接太多了,服务器都有访问人数限制的8. 服务器的相应端口没有开,即它不提供相应的服务9 hibernate 有哪些缓存,分别怎么使用 ?10 你对 hibernate 的了解到了一个什么样的程度?11 写出一个 sql 语句体现 hibernate 中一对多的关系21、Up date ()和 saveOrU pdate ()的区别?update() 方法操作的对象必须是持久化了的对象。也就是说,如果此对象在数据库中不存 在的话,就不能使用 update() 方法。saveOrUpdate() 方法操作的对象既可以使持久化了的,
16、也可以使没有持久化的对象。如果 是持久化了的对象调用 saveOrUpdate() 则会更新数据库中的对象;如果是未持久化的对象使用此方法,则save到数据库中。22、Hibernate 的三种状态之间如何转换?当对象由瞬时状态 (Transient) 一 save() 时,就变成了持久化状态。当我们在 Session 里 存储对象的时候,实际是在 Session的Map里存了一份,也就是它的缓存里放了一份,然 后,又到数据库里存了一份,在缓存里这一份叫持久对象 (Persistent) 。 Session 一CloseO 了,它的缓存也都关闭了,整个Session也就失效了,这个时候,这个对
17、象变成了游离状态(Detached),但数据库中还是存在的。当游离状态 (Detached)update()时,又变 为了持久状态(Persistent)。当持久状态(Persistent)delete()时,又变为了瞬时状态(Tra nsie nt),此时,数据库中没有与之对应的记录。23、工厂模式?工厂模式主要是为创建对象提供了接口。工厂模式按照 Java与模式中的提法分为三 类:1.简单工厂模式(Simpie Factory) 2. 工厂方法模式(Factory Method) 3.抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法
18、,就是将简单工厂模式 看为工厂方法模式的一种特例,两个归为一类。下面是使用工厂模式的两种情况:1.在编码时不能预见需要创建哪种类的实例。2.系统不应依赖于产品类实例如何被创建、 组合和表达的细节24、抽象类和接口的区别?接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有 方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实 现。 还有,接口可以实现 多重继承,而一个类只能继承一个 超类,但可以通过继承多个接口实现多重 继承,接口还有标识(
19、里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.25、Forward 和 redirect 的区别?forward是服务器请求资源,服务器直接访问目标地址的URL把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是 原来的地址。sessio n,request参数都可以获取。26、持久化对象的三种状态,代表含义?瞬时态:简单的说就是你在程序里面new 个对象,还没有和session关联redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用 刚才
20、请求的所有参数重新请求,所以持久态:对象和 session有了关联,对象处于hibernate 框架管理中游离态:在持久态的情况下,对象和session失去了关联,比如()或()后,即游离态,但数据已经存储到了数据库27、页面之间的值传递?1:可以分成多个参数对的方式用querystring传递。2:可以用特定的字符分隔后组成一个字符串,再用一个参数对的querystri ng方式传递。3:如果是第三信息的话,可以用在服务器端的session方式传递,一般不用这种方式。因为占服务器资源。4:也可以用cookie方式传递。5:当然还可以用其它的不常的方式传递。28、Struts框架的数据验证可分
21、为几种类型?表单验证(由 证错误Acti onF orm Bea n处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验业务逻辑验证 则,不允许向(由 Action处理):如果用户在表单中输入的姓名为"Monster",按照本应用的业务规 “ Monster”打招呼,因此将生成业务逻辑错误。29、写一个Singleton模式的例子?P ublic class Sin glet onp rivate static final Si nglet on sin glet on = new Sin glet on();p rivate Sin glet on()p ubl
22、ic static Sin glet on get In sta nce()retur n sin glet on;30、谈谈你MVC的理解?MVC是一种设计模式,它强制的将应用程序的输入、处理、和输出分开。使用了 MVC勺应用程序被分为3个核心部件:试图(View)、模型(Model)、控制器(Controller)。它们各司其职,既分工明确又相互合作。首先视图接受用户输入请求,然后将请求传递给控制器,控制器再调用某个模型来处理用户的请求,在控制器的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.这是经典的MVC设计执行的基本流程。MV(不仅实现了功能模块和显示模块的分离,同时它还
23、提高了系统的可维护性、可扩展性和组件的可复用性,是一个优秀的创建软件的途径。J2EE把MVC引入了 web领域,并在此基础上架构出了一套称为Model2的体系。Model2体系及jsp作为视图显示输出和接受用户输入数据,Servlet作为控制器处理用户请求并根据用户请求选择相应的jsp返回给用户,javaBean作为模型组件用作业务逻辑处理、管理数据的存储和一致性。31、项目中为什么使用SSH?1.使用Struts是因为struts是基于MV(模式的,很好的将应用程序进行了分层,使开发 者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大 提高开发效率。2
24、.使用Hibernate :因为hibernate为Java应用提供了一个易用的、高效率的对象关系 映射框架。hibernate是个轻量级的持久性框架,功能丰富。,反向控制)和AOP勾架多Spring,因为它模块化的很AOP并据此实现事务管理3. 使用 Spring :因为 spring 基于 loC(lnversion of Control 层j2ee系统的框架,但它不强迫你必须在每一层中必须使用 好,允许你根据自己的需要选择使用它的某一个模块; 采用IoC使得可以很容易的实现bean的装配,提供了简洁的(Tran scati on Man agme nt),等等32、在Struts2中,a
25、ction是单实例还是多实例,为什么?struts 2 的Action是多实例的并非单例,也就是每次请求产生一个Action的对象。原因是:struts 2 的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。如果Action是单实例的话,这些数据在多线程的环境下就会相互影响,例如 造成别人填写的数据被你看到了。所以Struts2的Action是多例模式的。33、Hibernate 与 jdbc 的联系?hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接(用的配置文件实现当然 本质是封装了 jdbc的forname),和查询,删除等代码,都
26、用面向对象的思想用代码联系 起来,hibernate通过hbm配置文件把po类的字段和数据库的字段关联起来比如数据库的然,这些实现的魔法id,在 po 类中就是 Pravite Long id; public Long getId() ;public setId(Long id);后hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类的就是xml文件,其实hibernate=圭寸装的jdbc+xml文件34、般用spring做什么?Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring 对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。础是基于使
27、用 JavaBean属性的Inversion of Control提供了管理业务 Spring的架构基容器。然而,这仅仅是完整图景中 的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了 Hibernate和其他0/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技 术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语 言编写的A
28、OP匡架,它给POJOs提供了声明式的事务管理和其他企业事务-如果你需要- 还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵 活的MVC We框架。35、C/S与B/S的区别?C/S架构是一种典型的两层架构,其全程是 Client/Server ,即客户端服务器端架构,其 客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序
29、通信。C/S架构也可以看做是 胖客户端架构。因为客 户端需要实现绝大多数的 业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受 很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是 Web浏览器, 极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有 Web浏览器即 可。B/S架构中,显示逻辑交给了 Web
30、浏览器,事务处理逻辑在放在了 WebApph,这样就 避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成 为瘦客户端。36、J2EE常用的设计模式?说明工厂模式?Factory (工厂模式),Builder(建造模式)Factory Method (工厂方法模式),Protot ype (原始模型模式),Si nglet on(适配器模式),Bridge (桥梁模式),式),Flyweight (享元模式),ProxyIn terpreter(解释器模式),VisitorMediator (调停者模式),Java中的23种设计模式:(单例模式),Facade (门面
31、模式),Adapter Composite (合成模式),Decorator (装饰模 (代理模式),Comma nd命令模式),(访问者模式),Iterator(迭代子模式),Memento (备忘录模式),Observer (观察者模式), State(状态模式),Strategy (策略模式),Temp late Method (模板方法模式),Cha in OfRespon sibleity (责任链模式)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的 数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同 的方法,但是这些方法针
32、对不同的数据进行了不同的操作。首先需要定义一个基类,该类 的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据 条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必 考虑到底返回的是哪一个子类的实例。37、BeanFactory的作用是什么?BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。在Spring中,BeanFactory是IoC容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的 对象及建立这些对象间的依赖。Spring为我们提供了许多易用的BeanFactory实现, XmlBeanFactory就
33、是最常用的一个。该实现将以 XML方式描述组成应用的对象以及对象间 的依赖关系。XmlBeanFactory类将持有此XML配2置元数据,并用它来构建一个完全可配置 的系统或应用。Ajax的工作原理?通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在接收到请求 后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来 回传递,从页实现无刷新。39、何为容器?容器是一个Java所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会 自动帮您作好。常用容器 WebSphereWebLogicResin. Tomcat40、Spring配
34、置文件中的ref元素的作用是什么?它的两个基本属性是什 么?用于指定属性值为spring容器中的其它bean.两个基本属性是bean和local41、Hibernate具有的三种检索方式?HQL检索方式 QBC检索方式SQL 检索方式42、什么是IOC,请详述?不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪 一个组件需要哪一项服务。容器(在Spring框架中是IOC容器) 负责将这些联系在一起。就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控,控制权由应用代码中转到了 外部容器,控制权的转移,就是所谓的反转。43、什么是AOP请详述?是
35、面向切面编程。AOP把软件系统分为两个部分:核心关注点和横切关注点。所谓的核心关注点,是业务处理的主要流程,也就是说这个解决方案要做的事。所谓横切关注点,是与核心业务无关的部分,它把常发生在核心关注点的多处,而各处基本相似,如日志,事务,权限等44、Spring框架的七个模块是什么?(1) spring AOP -面象切面编程(2)s pring DAO -数据访问对象(3)s pring ORM对象关系影射(4)s pring Con tect -上下文配置,向Spring框架提供上下文信息(5)s pring WEB - -WEB上下文模块(6)spring WEB-MVC -实现了 MVC(7)spring CORE -核心容器提供Sprin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市配送与物流配送环节的个性化服务考核试卷
- 机床附件的供应链优化与成本控制考核试卷
- D打印技术在个性化鞋类设计的应用考核试卷
- 城市规划城市水资源配置考核试卷
- 未来的数字化电影产业考核试卷
- 在家工作租房合同范本
- 代加工药品合同范本
- 工程承包服务合同范本
- 酒店客房服务操作流程制度
- 电力行业电力设备维修合同及免责条款
- 六年级小升初语文试卷 [六年级下册语文小升初试卷
- 计量泵的维护和修理知识培训讲义
- 危险化学品从业单位安全生产标准化宣贯
- 幼儿园中班开学第一课
- Zabbix监控系统方案
- 招商人员薪酬及提成
- 物业保洁员培训专业课件
- 人教版小学六年级数学下册教材研说
- PPT办公使用技巧培训笔记(共52张)
- 六年级《我的梦想》作文指导(课堂PPT)
- 关于诚信的论据
评论
0/150
提交评论