您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > java程序员2016最新面试题ssm面向对象
1.很新的面试题2.很全的面试题3.很重点的面试题框架Struts2与Struts1的面试题###1.Struts2与Struts1的联系与区别?为什么要用Struts2?struts1与struts2都是mvc框架的经典实现模式。Struts2不是从Struts1升级而来,而是由WebWork改名而来,而WebWork只是Xwork加了很多WEB拦截器而已区别:1.核心控制器改成了过滤器(过滤器比Servlet的级别要高,因为程序运行时是先进入过滤器再进入Servlet)2.struts1严重依赖于Servlet(因为太过于依赖于api的HttpServletRequest与HttpServletResponse的两个参数),struts2就则脱离了Servlet的API。3.管理Action时struts1是单例模式,struts2是每个请求产生一个实例。4.在表达式的支持上struts2不仅有jstl,还有功能更加强大的ognl表达式。5.struts1的类型转换是单向的(页面到ActionForm),struts2是双向的(页面到Action再到页面回显)6.校验,struts1没有针对具体方法的校验,struts2提供了指定某个方法进行效验,还有框架校验。7.struts2提供了拦截器,利用拦截器可以在访问Action之前或之后增加如权限拦截等功能。8.struts2提供了全局范围,包范围,Action范围的国际化资源文件管理实现。9.struts2支持多种视图类型###2.Struts2的核心是什么,体现了什么思想?Struts2的核心是拦截器,基本上核心功能都是由拦截器完成,拦截器的实现体现了AOP(面向切面编程)思想###3.为何继承ActionSupport因为ActionSupport实现了Action接口,提供了国际化,校验的功能。ActionSupport实现了国际化功能:因为它提供了一个getText(Stringkey)方法实现国际化,该方法从资源文件上获取国际化信息。Action接口提供了五个常量(success,error,login,input,none)。(sək'ses,erə(r)nʌn###4.模型驱动与属性驱动是什么模型驱动使用时注意什么问题答:模型驱动与属性驱动都是用来封装数据的。1.模型驱动:在实现类中实现ModelDrivenT接口使用泛型把属性类封装起来,重写getModel()方法,然后在实现类里创建一个属性类的实例,2.属性驱动:在实现类里定义属性,生成get与set方法,通过属性来拿值。###5.Struts2是怎样进行值封装的?struts2的值封装实际上是采用了ognl表达式.###6.Struts2如何进行校验1.每个Action类有一个校验文件,命名Action类名-validation.xml,且与Action类同目录,这是对action里面所有的方法进行校验。2.对Action里面的指定方法做校验使用Action的类名-访问路径_方法名-validation.xml。在效验文件里又分为两种:字段校验:字段用什么校验器来校验。非字段校验:是用校验器校验什么字段。###7.谈谈Struts2的国际化在struts2中是使用了拦截器来实现国际化。具体是先配置属性文件,格式是文件名_语言_国家名.properties,然后放的位置有Action同包位置,package位置,全局位置(要在常量里面配置),然后页面通过s:text或者key属性去访问###8.OGNL是什么你在项目中如何使用它OGNL是:对象图形导航语言。在struts2中的作用:ognl的实现关系:ActionConetxt。ognl3个常用的符号#$%#1构造map,list集合。2取ognl上下文的值。3用来过滤集合。$1在校验框架中取资源文件中的值。2可以在配置文件中传递参数。%使用百分号可以进行转义。###9.Strust2如何访问ServletAPI1:通过ActionContext可以获得request,application,session三个作用域(struts2实际上是通过适配器来把servlet的api转换为一个map,并把这些map放在ActionContext里面)。2:通过ActionContext的子类ServletActionContext去获取原滋原味的API。3:可以通过实现ServletRequestAware接口,重写里面的setServletRequest方法可以获得request,实际上是通过set的依赖注入。###10.什么是拦截器说说Struts2用拦截器来干什么说出6个拦截器来解释:在访问类的某个方法或者属性之前执行,拦截的是Action的请求,进行拦截然后在方法的执行前或者之后加入某些操作。作用:国际化,权限,效验等与源代码无关的操作。拦截器:国际化,表单重复提交,类型转换,自动装配,数据封装,异常处理,模型驱动,请求参数,处理类型转换错误,日志拦截器。###11.如何实现自定义拦截器?需要注意什么?实现:1.可以实现Interceptor接口,重写doIntercept方法指定某个方法进行拦截,或者继承AbstractInterceptor类,重写intercept方法。2.在xml配置文件中定义自定义拦截器,然后注入到拦截器栈中,再把拦截器引用到action中。3.可以配置到某个action单独使用,也可以配置到包下面的所有action使用。注意:要把默认的拦截器栈重新引用,否则会被覆盖。###12.ActionContext是用来干什么的ActionContext是Action的上下文。###13.为什么要继承默认的包?因为在Strtus2里面默认有很多的常量,拦截器,还有一些bean,如果继承默认的包,这些默认值和常量就会继承过来,###14.常见的有哪几种结果集类型?dispatcher:指得是转发,默认的结果集类型redirect:重定向,redirectAction:重定向到一个Actionstream:是返回一个流,一般用在文件下载上面###15.开发项目时struts2在页面怎样拿值?从值栈中或者是ognl的上下文###16.怎么样用Struts2进行文件的上传或者下载上传:1.在jsp用了s:file标签,把s:from的enctype属性设置为multipart/form-data2.在action里面定义三个字段Filefile,String[file]ContentType,String[file]FileName3.用输出流转化成硬盘上面的文件下载:1.在struts.xml中配置result为stream的类型2.在action定义四个属性,默认的有个是InputStream的类型叫inputStream的,从硬盘上面读取文件到这个流赋值即可.contentType;contentLength;contentDisposition;inputStream;###17.简单讲下struts里面的标签,说不少于5个s:ifs:forms:urls:propertys:iterater###18.默认struts2里面的标签取值都是从那里取值的默认都是从OGNL值栈里面取值的###19.ValueStack分为那两部分,组成部分是什么,分别怎么访问分为:对象栈和ContextMap访问:1.对象栈前台可以直接访问2.ContextMap访问的时候前面加####20.标签s:property和el表达式有什么区别,相同:都可以从值栈里面取值区别:el表达式只能取属性有getset方法的简单数据类型s:property标签:取得数组的一些方法等复杂数据对象类型###21.说下重复提交的解决思路,Struts2是怎么样解决重复提交的1.在页面表单域加入一个隐藏的s:token字段,然后在session里面也加入同样的值2.当用户第一次请求的时候,把request的值和session对比,相同就通过请求,执行下面拦截器,并且移除Session里面的值3.如果第二次请求时候,Session已经没有这个值,那么就阻断当前请求,定位重复提交Struts2是通过s:token标签来完成重复提交思路的spring的面试题部分###1.Spring的aop你怎样实现?用动态代理和cglib实现,有接口的用动态代理,无接口的用cglib###2.Spring在SSH起什么作用为大部分框架提供模版,常见的核心类提供初始化,并且整合三层框架###3.Spring容器内部怎么实现的内部用Map实现,或者说HashMap###4.怎么样理解IOC与AOPIOC是一种控制反转的思想,降低了对象的耦合度,AOP是面向切面编程,非侵入式编程,实现了非业务性编程(公共功能),譬如日志,权限,事务等等###5.Spring的事务,事务的作用。Spring里面的事务分为编程式事务和声明式事务,一般用声明式事务,用来控制数据操作的完整性,一致性###6.Spring的IOC和AOP你在项目中是怎么使用的?IOC主要来解决对象之间的依赖问题,把所有的bean的依赖关系通过配置文件或者注解关联起来,降低了耦合度,AOP一般用来整合框架时候都可以用得到,事务用的最多,还有个别日志,权限功能也可以用到###7Spring主要使用了什么模式?工厂模式--每个Bean的创建通过方法单例模式--默认的每个Bean的作用域都是单例代理模式--关于AOP的实现是通过代理,体现代理模式###8.Springbean的作用域.Scope作用域有4种,常见的有单例或者多例,默认是单例###9.Spring的事务是如何配置的?1.先配置事务管理器TransactionManager,不同的框架有不同属性2.再配置事务通知和属性,通过tx:advice3.配置aop:config,设置那些方法或者类需要加入事务###10.Spring的配置文件最好使用什么文件?xml,因为它是最简单,最流行的数据格式###11.你使用过Spring中的哪些技术?bean的管理,AOP技术,IOC技术,事务等###12.为什么要用Spring降低对象耦合度,让代码更加清晰,提供一些常见的模版###13.说下Spring的注解1.bean的标记注解@Component通用注解@Repository持久层注解@Service业务层注解@Controller:表现层注解2.bean的自动装配注解@AutoWired默认是按照类型装配,如果有多个类型实现可以用Qualifier来指定名称@Resource默认是按照名称来装配,是JDK里面自带的注解,默认情况下用@AutoWired注解###15.写过类似SpringAOP的操作吗?简单的写过,譬如前置通知,后置通知的方法,环绕通知,事务就是典型的AOP的实现###16.Spring中的AOP在你项目中是怎么使用的,用在哪里?Struts2和Hibernate整合时候都可以用得到,事务用的最多,还有个别日志,权限功能也可以用到###17.Spring的事务(传播属性,隔离级别)。七大传播属性,四大隔离级别###19.SpringDI的几种方式setter注入和构造器注入,一般用setter注入###20.依赖注入的原理就是通过反射机制生成想要的对象注入###21.说一下整合Spring的核心监听器。这个是在SSH整合的时候使用,是整个WEB项目启动的时候初始化Spring的容器.具体是在web.xml里面配置的ContextLoaderListenerSpring配置文件中的核心是个监听器,是用来初始化Spring的容器###22.Spring你们为什么用配置文件而不使用注解?配置文件耦合度低,容易维护,尤其是在切面或者事务的时候,只配置一次就可以让很多代码拥有事务,###23.Spring和Hibernate的事务有什么区别?Spring
本文标题:java程序员2016最新面试题ssm面向对象
链接地址:https://www.777doc.com/doc-2881202 .html