常见java 框架面试题

1.结合项目谈谈你对 MVC 的理解
MVC 是 Model—View—Controler 的简称。即模型—视图—控制器。MVC 是一种设
计模式,它强制性的把应用程序的输入、处理和输出分开。
MVC 中的模型、视图、控制器它们分别担负着不同的任务。
视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用
户的输入。视图不进行任何业务逻辑处理。
模型: 模型表示业务数据和业务处理。相当于 JavaBean。一个模型能为多个视图提
供数据。这提高了应用程序的重用性
控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型
去处理请求。
然后根据处理的结果调用相应的视图来显示处理的结果。
MVC 的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,
并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用
户。
如在项目中要对应 MVC 的话:View 对应项目中 Jsp,Controler 对应 Action,Model

对应 service+dao 层的业务逻辑和持久层的操作。



2,什么是Spring MVC框架的控制器?
控制器提供一个访问应用程序的行为,此行为通常通过服务接口实现。
控制器解析用户输入并将其转换为一个由视图呈现给用户的模型。
Spring用一个非常抽象的方式实现了一个控制层,允许用户创建多种用途的控制器。


3,SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
  是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段


4,13. 怎么样把某个请求映射到特定的方法上面
  直接在方法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截的路径


5. 如果在拦截请求中,我想拦截get方式提交的方法,怎么配置
  可以在@RequestMapping注解里面加上method=RequestMethod.GET


6. 如果在拦截请求中,我想拦截提交参数中包含"type=test"字符串,怎么配置
  可以在@RequestMapping注解里面加上params="type=test"


7. 我想在拦截的方法里面得到从前台传入的参数,怎么得到
  直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样


8,SpringMVC怎么样设定重定向和转发的
  转发;; 在返回值前面加"forward:"就可以让结果转发,譬如"forward:user.do?name=method4" 
重定向;;在返回值前面加"redirect:"就可以让返回值重定向,譬如"redirect:http://www.baidu.com"


9,IBatis和MyBatis在核心处理类分别叫什么
        IBatis里面的核心处理类交SqlMapClient,
        MyBatis里面的核心处理类叫做SqlSession 


10什么情况下用注解绑定,什么情况下用xml绑定
        当Sql语句比较简单时候,用注解绑定,

        当SQL语句比较复杂时候,用xml绑定,一般用xml绑定的比较多


11

springaop特性底层使用的是jdk的动态代理和cglib动态代理,spring会检测需要增强的类是否有接口,如果有接口我们就使用jdk的动态代理,如果增强类(被代理类)没有接口,springaop就会使用cglib动态代理,在学习中我们也是可以指定使用什么动态代理(<aop:config>标签的proxy-target-class属性为true就是指定使用cglib动态代理,默认情况下会自动检测被代理类有没有接口,有接口就使用jdk的动态代理,没有接口就是要cglib动态代理)



  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值