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