已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档Java面试宝典(高级篇)1. 前端面试经典题目1. 说明 HTML 文档中 DTD 的意义和作用(酷讯)DTD,文档类型定义,是一种保证 html 文档格式正确的有效方法,在解析网页时,浏览器将使用 DTD 来检查页面的有效性(是否符合规范,元素和标签使用是否正确)并且采取相应的措施。同时它还会影响浏览器的渲染模式(工作模式)。2. 准确的指出以下代码的显示结果(酷讯) a position:relative; height:200px; width:500px; border:solid 1px #000; background:#FFF;#b,#cposition:absolute; width:250px; height:90px;#btop:30px; left:50px; background:#FF0000; z-index:1;#cbottom:30px; right:50px; background:#0000FF; 结果如图所示:3. 指出以下代码的显示效果adbc4. 如何显示没有下划线的超链接?()A. a text-decoration:noneB. a text-decoration:no underlineC. a underline:noneD. a decoration:no underline答案:A5. 请问,div 和 span, p 标签三者间的区别 (YG)从语义化的角度来讲,div和span标签对于它们包含的元素是没有意义的,而p标签则是一个语义化标签,表示一个段落。所以div 和 span 一般是用来布局。从显示的角度来讲,span 是内联的,用在一小块的内联 HTML 中,前后不断行,div 元素是块级的,等同于其前后有断行,p 元素是块级的,前后断行,而且还要再隔一行,相当于断两行。6. CSS中class和id的区别是?id:每个页 ID 是唯一的不能重复。 class:可以设置多个 class 为同一个值。7. 实现框架的标签 举例说明 8. 写出以下 html 标签的含义:input form script style table b img 标签用于搜集用户信息。根据不同的 type 属性值,输入字段拥有很多种形式。输入字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等。 标签用于为用户输入创建 HTML 表单。表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。 标签用于定义客户端脚本,比如 JavaScript。script 元素既可以包含脚本语句,也可以通过 src 属性指向外部脚本文件。 标签用于为 HTML 文档定义样式信息。 标签定义 HTML 表格。简单的 HTML 表格由 table 元素以及一个或多个 tr、 th 或 td 元素组成。呈现粗体文本效果。 元素向网页中嵌入一幅图像。9. CSS中 link 和import 的区别是?答:(1) link属于HTML标签,而import是CSS提供的; (2) 页面被加载的时,link会同时被加载,而import引用的CSS会等到页面被加载完再加载; (3) import只在IE5以上才能识别,而link是HTML标签,无兼容问题; (4) link方式的样式的权重 高于import的权重. 10. 用 css、html 编写一个两列布局的网页,右侧固定宽度 200px,左侧自适应 11. 看以下代码:文件名称:forward.jsp 跳转 如果运行以上jsp文件,地址栏的内容为A. :8080/myjsp/forward.jspB. :8080/myjsp/index.jspC. :8080/myjsp/index.htmD. :8080/myjsp/forward.htm答:A12.基于以下 HTML 结构,以下关于 main1.css 和 main2.css 的描述有哪些是正确的?A.main1.css和main2.css同时开始加载,先加载完成的优先解析B.如果main1.css和main2.css中有相同的选择器规则,那么main2.css中的规则将覆盖main1.css的规则C.main2.css只有在main1.css加载并解析后,才开始加载D.如果main1.css和main2.css中有相同的选择器规则,那么main2.css中的规则将被忽略答:A13.下列html语义化标签中,描述存在错误的是A.强调文字,长文本引用B.强调文字,文章栏目标题C.超链接,文章段落D.定义文档中的节,导航E.有序列表。无序列表答:E14.设置文字颜色应使用属性A.font-familyB.font-colorC.colorD.font答:C15.以下标签,错误的是A.text-left用于左对齐B.text-center水平居中对齐C.text-vertical垂直居中对齐D.text-uppercase可以将文字全部大写答:C16.有一个元素,需要在pc端显示而在手机端隐藏,需要使用的方法是?A.visible-xs-8 hidden-mdB.visible-md-8 hidden-xsC.visible-md-8 hidden-smD.visible-sm-8 hidden-md答:BJavascript1. 解释下面语句的意思:document.formformName.submit。(百度)答:获取 name 为 formName 的表单并将该表单数据提交到服务器。但这行代码是不能运行的,有两处错误,一是通过表单名称来获取表单得到时候,应该写成 document.formsformName,提交表单事件使用 submit 方法,需要加上括号.2. 简单说一下浏览器本地存储是怎样的答:在较高版本的浏览器中,js提供了sessionStorage和globalStorage。在HTML5中提供了localStorage来取代globalStorage。 html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。 sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。 而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。 3.javascript中document.getElemenById的返回值的类型为()A.ArrayB.ObjectC.StringD.Function答:B4.下面给定的代码中, myFunc() 返回什么? var foo=foo; var bar=bar; function myFunc() return foo+bar; A. undefinedB.foobarC.foo+barD.NaN答:C5.哪一个是javascript中array的正确写法?A.var txt = new Array(tim,kim,jim)B.var txt = new Array=tim,kim,jimC.var txt = new Array:1=(tim)2=(kim)3=(jim)D.var txt = new Array(1:tim,2:kim,3:jim)答:A6.下面程序的显示结果是?A. hiB.hi helloC.helloD.不显示答:A7.请阅读以下代码:问题:span标签的width和height分别为多少?A.width = 0px,height = 0pxB.width = 400px,height = 200pxC.width = 100px,height = 50pxD.width = 0px,height = 200px答:D8.JS 表单弹出对话框函数是?获得输入焦点函数是?弹出对话框函数:alert(), prompt(), confirm() 获得输入焦点函数:focus()9.JS 的转向函数是?怎么引入一个外部 JS 文件?转向使用 window.location.href = 引入外部 js 使用 10. 有下面语句: 编写代码,当鼠标划过文本框,自动选中文本框中的内容。(百度)11.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。(新浪)主窗口:弹出窗口:12.判断以下代码是否正确,如果有错,请指出错误,如果正确,请指出运行结果 var arr = new Array(new Array(1,2,3,4),new Array(abc, def, xyz),);for(i = 0; i arr.length; i+) document.write(arr0)怀疑这个代码写错了,第二个 new array 后面的逗号是多余的,如果此处没问题,则代码是正确的,输出的结果是 1,2,3,4 1,2,3,4注:arr 是一个二维数组,该数组有两个元素,第一个元素是数组1,2,3,4,第二个元素也是一个数组为abc, def, xyz,for 循环语句执行了两次,但都是输出第一个元素,即数组1,2,3,4。13.用 JavaScript 写一个函数,其功能是可以删除数组中重复的元素。14.以下哪条 JavaScript 语句会产生运行错误:( )var obj = ( );var obj = ;var obj = ; D. var obj = /;答案:A15.请选择结果为真的表达式:( )null instanceof Objectnull = undefinednull = undefinedNaN = NaN答案:C16.假设 a.html和 b.html 在同一个文件夹下面,用 JavaScript 实现当打开 a.html 五秒钟后,自动跳转到 b.html。17.请使用 JavaScript 写出三种产生一个 image 标签的方法(提示:从方法、对象、HTML 角度考虑)(1). var img = new Image();(2). var img = document.createElement(image)(3). img.innerHTML = 18.js 中网页前进和后退的代码前进: history.forward();或者 history.go(1); 后退: history.back (); 或者 history.go(-1);实现点击按钮弹出窗口的代码 (YG)document.getElementById( button ).onclick = function() window.open (page.html);其中,button 是按钮的 id,page.html 是要弹出的窗口页面。JavaScript 包括那些基本数据类型?(小米)JavaScript 中包括 5 种基本数据类型,分别是 Number,String,Boolean,Null 和 Undefined。2. Web1.谈谈对 mvc 的认识由模型(model),视图(view),控制器(controller)完成的应用程序由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;MVC 是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用 MVC 应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。模型表示企业数据和业务规则。控制器接受用户的输入并调用模型和视图去完成用户的需求。MVC 的优点:低耦合性、高重用性和可适用性、较低的生命周期成本、快速的部署、可维护性、可扩展性,有利于软件工程化管理MVC 的缺点:没有明确的定义,完全理解 MVC 并不容易。不适合小型规模的应用程序。2. 什么是JSP动作(JSP action)?JSP动作以XML语法的结构来控制Servlet引擎的行为。当JSP页面被请求的时候,JSP动作会被执行。它们可以被动态的插入到文件中,重用JavaBean组件,转发用户到其他的页面,或者是给Java插件产生HTML代码。下面列出了可用的动作:jsp:include-当JSP页面被请求的时候包含一个文件。jsp:useBean-找出或者是初始化Javabean。jsp:setProperty-设置JavaBean的属性。jsp:getProperty-获取JavaBean的属性。jsp:forward-把请求转发到新的页面。jsp:plugin-产生特定浏览器的代码。3. 什么是JSP指令(Directive)?JSP中有哪些不同类型的指令?Directive是当JSP页面被编译成Servlet的时候,JSP引擎要处理的指令。Directive用来设置页面级别的指令,从外部文件插入数据,指定自定义的标签库。Directive是定义在 之间的。下面列出了不同类型的Directive:包含指令(Include directive):用来包含文件和合并文件内容到当前的页面。页面指令(Page directive):用来定义JSP页面中特定的属性,比如错误页面和缓冲区。Taglib指令: 用来声明页面中使用的自定义的标签库4. JSP有什么优点?下面列出了使用JSP的优点:JSP页面是被动态编译成Servlet的,因此,开发者可以很容易的更新展现代码。JSP页面可以被预编译。JSP页面可以很容易的和静态模板结合,包括:HTML或者XML,也可以很容易的和产生动态内容的代码结合起来。开发者可以提供让页面设计者以类XML格式来访问的自定义的JSP标签库。开发者可以在组件层做逻辑上的改变,而不需要编辑单独使用了应用层逻辑的页面。5. sendRedirect()和forward()方法有什么区别?sendRedirect()方法会创建一个新的请求,而forward()方法只是把请求转发到一个新的目标上。重定向(redirect)以后,之前请求作用域范围以内的对象就失效了,因为会产生一个新的请求,而转发(forwarding)以后,之前请求作用域范围以内的对象还是能访问的。一般认为sendRedirect()比forward()要慢。6. 什么是cookie?session和cookie有什么区别? cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。下面列出了session和cookie的区别:无论客户端浏览器做怎么样的设置,session都应该能正常工作。客户端可以选择禁用cookie,但是,session仍然是能够工作的,因为客户端无法禁用服务端的session。在存储的数据量方面session和cookies也是不一样的。session能够存储任意的Java对象,cookie只能存储String类型的对象。7. 如何知道是哪一个客户端的机器正在请求你的Servlet? ServletRequest类可以找出客户端机器的IP地址或者是主机名。getRemoteAddr()方法获取客户端主机的IP地址,getRemoteHost()可以获取主机名。8. doGet()方法和doPost()方法有什么区别? doGet:GET方法会把名值对追加在请求的URL后面。因为URL对字符数目有限制,进而限制了用在客户端请求的参数值的数目。并且请求中的参数值是可见的,因此,敏感信息不能用这种方式传递。doPOST:POST方法通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送的参数的数目是没有限制的。最后,通过POST请求传递的敏感信息对外部客户端是不可见的。9. 解释下Servlet的生命周期。 对每一个客户端的请求,Servlet引擎载入Servlet,调用它的init()方法,完成Servlet的初始化。然后,Servlet对象通过为每一个请求单独调用service()方法来处理所有随后来自客户端的请求,最后,调用Servlet(译者注:这里应该是Servlet而不是server)的destroy()方法把Servlet删除掉。10. 什么是Servlet?Servlet是用来处理客户端请求并产生动态网页内容的Java类。Servlet主要是用来处理或者是存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息。11. jsp有哪些内置对象?作用分别是什么?(至少三个)1、request对象 客户端请求,此请求会包含来自GET/POST请求的参数通过它才能了解到客户的需求,然后做出响应。2、response对象 响应客户请求的有关信息3、session对象 它指的是客户端与服务器的一次会话,从客户端连到服务器的一个 WebApplication开始,直到客户端与服务 器断开连接为止。4、out对象 它是JspWriter类的实例,是向客户端输出内容常用的对象5、page对象 它是指向当前JSP页面本身,有点象类中的this指针,它是 Java.lang.Object类的实例6、application对象 它实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭7、exception对象 它是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。8、pageContext对象 它提供了对JSP页面内所有的对象及名字空间的访问9、config对象 它是在一个Servlet初始化时,JSP引擎向它传递信息用的12.谈谈对XML的理解?说明Web应用中Web.xml文件的作用?可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。什么是可扩展标记语言? 可扩展标记语言是一种很像超文本标记语言的标记语言。 它的设计宗旨是传输数据,而不是显示数据。 它的标签没有被预定义。您需要自行定义标签。 它被设计为具有自我描述性。 它是W3C的推荐标准。web.xml文件是用来配置:欢迎页、servlet、filter等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。13. 什么是注解?定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。作用分类:编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】 代码分析:通过代码里标识的元数据对代码进行分析【使用反射】编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】14. servlet中转发和重定向的区别?Servlet中页面的跳转有两种方式:转发和重定向。1、转发和重定向的区别转发是服务器行为,重定向是客户端行为。转发是浏览器发生了一次请求,重定向至少是两次请求。转发地址栏中的url不会发生改变,重定向地址栏中的url会发生改变。转发因为是一次请求,两次跳转之间传输信息不会丢失,而重定向两次跳转会丢失传输信息。转发只能将请求跳转到同一个web应用中的页面,重定向可以指向任何页面,包括同一个web应用中的页面,同一个站点中的页面,其他站点的页面。2、 传递给HttpServlet Response.sendRedirect 方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher 对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。15. struts2如何解决重复提交问题?token 在struts配置文件中增加token拦截器。16. struts2 国际化在struts2中是使用了拦截器来实现国际化。struts2的国际化分为三部分:1.Action范围,这种范围是用Action的实现类的类名来作为前缀_语言名称_国家地区名(大写).properties.2.包范围,包范围是用package作为前缀_语言名称_国家地区名(大写).properties。3.全局范围,全局范围的前缀默认的是application,可以通过xml配置文件配置常量(使用constant标签注册i18l拦截器)来指定前缀,前缀_语言名称_国家地区名(大写).properties。国际化实现的原理:通过i18n拦截器获得请求参数requestlocale的值(zh或者是en)并把当前的值转化为locale对象,把locale对象存在ww_trans_i18n_locale的session作用域中,根据struts2的请求处理流程,拦截器只会在进入action的时候才会调用,所有我们一般把对jsp的访问转化为对action的访问。17. hibernate 延迟加载? 延迟加载(lazy load)也叫懒加载,它是hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。 Hibernate中主要通过代理(proxy)机制来实现延迟加载的。具体过程:Hibernate从数据库获取某一个对象数据时、获取某一个对象的集合属性值时,或获取某一个对象所关联的另一对象时,由于没有使用该对象的数据(除标识符值外),Hibernate并不从数据库加载真正的数据,而只是为该对象创建一个代理对象来代表这个对象,这个对象上的所有属性都为默认值;只有在真正需要使用该对象的数据时才创建这个真实对象,真正从数据库中加载它的数据。这样在某些情况下,就可以提高查询效率。 Hibernate中默认采用延迟加载的情况主要由以下几种: (1)当调用Session上的load()方法加载一个实体时,会采用延迟加载。 (2)当Session加载某个实体时,会对这个实体中的集合属性值采用延迟加载。 (3)当Session加载某个实体时,会对这个实体所单端关联的另一个实体对象采用延迟加载。18. OGNL是什么?你在项目中如何使用它OGNL是:对象图形导航语言。原ognl是单个对象的,在struts2的应用是多个对象的,struts2的类型转换也是通过ognl来实现的。Struts2中默认的表达式语言就是ognl,struts2的取值设值都是通过ognl来实现的,struts2要依靠它的标签才可以使用ognl。相对于jstl或者其他表达式语言,它有如下优势:1 能够调用对象实例的方法2 能够调用类的静态方法3 操作集合对象4 访问Ognl上下文取值时ognl有三个参数:1 表达式,2 ognl的上下文(map),3 对象实例(值栈)。如果表达式带#号是从上下文中(map)拿值,否则是从值栈中拿值。设值时有四个参数:1 表达式,2 ognl的上下文(map),3 对象实例,4 设入的值如果表达式带#号是把值设入上下文中(map),否则是把值设入值栈中。在struts2中 ognl的实现关系:ActionConetxt。ognl 3个常用的符号 # $ %# 1 构造map,list集合。2 取ognl上下文的值。3 用来过滤集合。$ 1 在校验框架中取资源文件中的值。2 可以在配置文件中传递参数。% 使用百分号可以进行转义。19. Spring有哪些优点?轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。容器:Spring包含并管理应用程序对象的配置及生命周期。MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。20. Hibernate中get和load有什么不同之处? 把get和load放到一起进行对比是Hibernate面试时最常问到的问题,这是因为只有正确理解get()和load()这二者后才有可能高效地使用Hibernate。get和load的最大区别是,如果在缓存中没有找到相应的对象,get将会直接访问数据库并返回一个完全初始化好的对象,而这个过程有可能会涉及到多个数据库调用;而load方法在缓存中没有发现对象的情况下,只会返回一个代理对象,只有在对象getId()之外的其它方法被调用时才会真正去访问数据库,这样就能在某些情况下大幅度提高性能。21. 什么是 Ajax?Ajax 的原理是什么?Ajax 的核心技术是什么?Ajax 的优缺点是什么?Ajax 是 Asynchronous JavaScript and XML 的缩写,是 JavaScript、XML、CSS、DOM 等多个技术的组合。Ajax 的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到数据库中的返回数据信息了。所以 Ajax 技术实现了一个静态网页在不刷新整个页面的情况下与服务器通信,减少了用户等待时间,同时也从而降低了网络流量,增强了客户体验的友好程度。Ajax 的核心技术是 XMLHttpRequest,它是 JavaScript 中的一个对象。Ajax 的优点是:(1).减轻了服务器端负担,将一部分以前由服务器负担的工作转移到客户端执行,利用客户端闲置的资源进行处理;(2).在只局部刷新的情况下更新页面,增加了页面反应速度,使用户体验更友好。Ajax 的缺点是不利于 SEO 推广优化,因为搜索引擎无法直接访问到 Ajax 请求的内容。22. ActionContext是用来干什么的ActionContext是Action的上下文。通过ActionContext这个类来可以获得:request,application,session,Locale、ValueStack,ConversionErrors1 可以获得servlet的api:request,application,session。2 进行国际化:获得语言环境 Locale。3 收集错误信息:ConversionErrors。4 有个值栈来装action实例与创建的模型驱动的实例:ValueStack。5 ActionContext是线程安全的-用本地线程实现的。23. 如果我的网站用的 utf-8 编码,为防止乱码出现,都需要注意哪些地方?1)数据库中库和表都用 utf8 编码2)java连接 mysql,指定数据库编码为 utf8 ;3)java文件指定编码为 utf-84)网站下所有文件的编码为 utf85)html 文 件 指 定 编 码 为 utf-824.hibernate的三种状态之间如何转换当对象由瞬时状态(Transient)一save()时,就变成了持久化状态; 当我们在Session里存储对象的时候,实际是在Session的Map里存了一份, 也就是它的缓存里放了一份,然后,又到数据库里存了一份,在缓存里这一份叫持久对象(Persistent)。 Session 一 Close()了,它的缓存也都关闭了,整个Session也就失效了,这个时候,这个对象变成了游离状态(Detached),但数据库中还是存在的。 当游离状态(Detached)update()时,又变为了持久状态(Persistent)。 当持久状态(Persistent)delete()时,又变为了瞬时状态(Transient), 此时,数据库中没有与之对应的记录。25. 简述 Tcp 协议的三次握手过程。 (亿邮)TCP 是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器确认;第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;第三次握手:客户端收到服务器的 SYNACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。26. 什么是拦截器 说说Struts2用拦截器来干什么 说出6个拦截器来在访问类的某个方法或者属性之前执行,拦截的是Action的请求,进行拦截然后在方法的执行前或者之后加入某些操作,如:国际化,权限,效验等与源代码无关的操作。国际化,表单重复提交,类型转换,自动装配,数据封装,异常处理,模型驱动,请求参数,处理类型转换错误,日志拦截器。27. 写出你所知道的 XML 解析器 (亿邮)DOM,SAX,SimpleXML,其中前两种是通用的解析器,和具体语言无关,而 SimpleXML 则是 PHP 提供的解析器。28. 请你谈谈SSH整合:SSH: Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分(View:沿 用JSP,HTTP,Form,Tag,Resourse;Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作。Spring:Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。29.Spring里面applicationContext.xml文件能不能改成其他文件名?ContextLoaderListener是一个ServletContextListener,它在你的web应用启动的时候初始化。缺省情况下,它会在WEB-INF/applicationContext.xml文件找Spring的配置。你可以通过定义一个元素名字为”contextConfigLocation”来改变Spring配置文件的位置。示例如下:org.springframework.web.context.ContextLoaderListenercontextConfigLocation/WEB-INF/xyz.xml30.如何在web应用里面配置spring?在web.xml中加入如下同容,在启动web服务器时加载/WEB-INF/applicationContext.xml中的内容。context org.springframework.web.context.ContextLoaderServlet 1 通过如下类得到ApplicationContext实例WebApplicationContextUtils.getWebApplicationContext 31.spring中的BeanFactory与ApplicationContext的作用有哪些?1.BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。2. ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能:a.国际化支持b.资源访问:Resourcers=ctx.getResource(”classpath:perties”),“file:c:/perties”c.事件传递:通过实现ApplicationContextAware接口32.什么是aop,aop的作用是什么?面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事物管理之上允许用户实现自定义切面,用AOP来完善OOP的使用可以把SpringAOP看作是对Spring的一种增强33. 什么是Spring的依赖注入?有哪些不同类型的IOC(依赖注入)方式?依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释。这概念是说你不用创建对象,而只需要描述它如何被创建。你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。 Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。 34. 在 Spring中如何注入一个java集合?Spring提供以下几种集合的配置元素: 类型用于注入一列值,允许有相同的值。 类型用于注入一组值,不允许有相同的值。 类型用于注入一组键值对,键和值都可以为任意类型。 类型用于注入一组键值对,键和值都只能为String类型。 35. Spring框架的事务管理有哪些优点?你更倾向用那种事务管理类型?它为不同的事务API 如 JTA,JDBC,Hibernate,JPA 和JDO,提供一个不变的编程模式。 它为编程式事务管理提供了一套简单的API而不是一些复杂的事务API如 它支持声明式事务管理。 它和Spring各种数据访问抽象层很好得集成。 大多数Spring框架的用户选择声明式事务管理,因为它对应用代码的影响最小,因此更符合一个无侵入的轻量级容器的思想。声明式事务管理要优于编程式事务管理,虽然比编程式事务管理(这种方式允许你通过代码控制事务)少了一点灵活性。36. 什么是Spring的MVC框架?Spring 配备构建Web 应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。37. DispatcherServletSpring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。38. mybatis当实体类中的属性名和表中的字段名不一样解决办法: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致 select order_id id, order_no orderno ,order_price price form orders where order_id=#id; 解决办法: 通过来映射字段名和实体类属性名的一一对应的关系 39. mybatis在mapper中如何传递多个参数?java的反射机制并不能让框架获取到参数的名字(方法签名中只有参数类型, 可以说是为了优化,也可以说设计就是如此,总之名字无意义), 所以mybatis默认的命名为: param1,param2 如果想给他们指定名称,可以使用 param 注解: 01.import org.apache.ibatis.annotations.param; 02.public interface usermapper 03. user selectuser(param(“username”) string username, 04. param(“hashedpassword”) string hashedpassword); 05. 然后,就可以在xml像下面这样使用(推荐封装为一个map,作为单个参数传递给mapper): 01. 02. select id, username, hashedpassword 03. from some_table 04. where username = #username 05. and hashedpassword = #hashedpassword 06. 40. 什么是MyBatis的接口绑定,有什么好处接口映射就是在IBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定, 我们直接调用接口方法就可以,这样比起原来了SqlSession提供的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软包装新材料生产技术改造项目技术方案
- 2026年江苏城乡建设职业学院单招职业倾向性测试必刷测试卷必考题
- YIN三国梦想演讲稿
- 2026年新疆职业大学单招职业适应性考试题库及答案1套
- 2026年无锡工艺职业技术学院单招职业倾向性测试必刷测试卷带答案
- 2026年江西省景德镇市单招职业倾向性测试题库带答案
- 2026年新疆天山职业技术大学单招综合素质考试必刷测试卷附答案
- 2026年江苏省扬州市单招职业倾向性测试题库带答案
- 2026年抚顺职业技术学院单招职业倾向性考试题库附答案
- 重工装备制造项目社会稳定风险评估报告
- 评标专家评标考核记录表
- 富士vp系列变频器用户手册
- 六年级数学 计算能力分析
- GB/T 2423.22-2012环境试验第2部分:试验方法试验N:温度变化
- 安全教育教案课程全集
- 饲料生产许可证试题
- 建设工程缺陷责任期终止证书
- 规培医院教学查房规范教案资料
- 护栏板试验检测报告
- 深基坑边坡稳定性计算书
- 经络系统的组成课件
评论
0/150
提交评论