zoukankan      html  css  js  c++  java
  • ssm常见面试题

    1. 什么是DI或者IOC?请解释下Spring IOC。

    IOC:即“控制反转”,是一种设计思想,是指创建对象的控制权的转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到容器,对象与对象之间松散耦合,也利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。DI(依赖注入)和控制反转是同一个概念的不同角度描述,所谓依赖注入就是应用程序依赖于IoC容器,在运行时需要IoC容器来动态提供对象需要的外部资源。

    Java中依赖注入有以下三种实现方式:构造器注入、Setter方法注入、接口注入。

    2.Spring AOP

    3.SpringMVC的工作流程?

    1、用户发送请求至前端控制器DispatcherServlet;

    2、DispatcherServlet收到请求调用HandlerMapping处理器映射器;

    3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;

    4、DispatcherServlet调用HandlerAdapter处理器适配器;

    5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器);

    6、Controller执行完成返回ModelAndView;

    7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet;

    8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器;

    9、ViewReslover解析后返回具体View;

    10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中);

    11、DispatcherServlet响应用户。

    2. SpringMVC常用的注解有哪些?

    @RequestMapping:用于请求url映射。

    @RequestBody:注解实现接收http请求的json数据,将json转换为java对象。

    @ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。

    3. 如何解决get和post乱码问题?

    解决post请求乱码:我们可以在web.xml里边配置一个CharacterEncodingFilter 过滤器。设置为utf-8。

    解决get请求乱码有两种方法个:

    1)修改tomcat配置文件添加编码和工程编码一致;

    2) 另一种方法对参数进行重新编码;

    String username = new String(Request.getParameter("userName").getBytes("ISO8859-1"),"utf-8")。

    4. springmvc的优点?

    1)可以支持各种视图技术,而不仅仅局限于JSP;

    2)与Spring框架集成(如IoC容器、AOP等);

    3) 清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)

    5. 什么是springmvc?

    SpringMVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型。MVC: Model View Controller 模型-视图-控制器 。

    视图:展示给用户的视图;

    模型:表示数据和业务处理规则。模型返回的数据是独立的,这样的一个模式能够为多个视图提供数据,这样一来模型的代码只需要写一次便能够被多个视图重用,减少了代码的重复性;

    控制器:接受用户的输入并调用相应的模型和视图来完成用户的需求。

    6.SpringMVC怎么样设定重定向和转发的?

    在返回值前面加"forward:"就可以让结果转发,譬如"forward:user.do?name=method4" 在返回值前面加"redirect:"就可以让返回值重定向,譬如"redirect:"。

    7、Spring MVC的主要组件?

    (1)前端控制器 DispatcherServlet(不需要程序员开发)

    作用:接收请求、响应结果 相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

    (2)处理器映射器HandlerMapping(不需要程序员开发)

    作用:根据请求的URL来查找Handler

    (3)处理器适配器HandlerAdapter

    注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

    (4)处理器Handler(需要程序员开发)

    (5)视图解析器 ViewResolver(不需要程序员开发)

    作用:进行视图的解析 根据视图逻辑名解析成真正的视图(view)

    (6)视图View(需要程序员开发jsp)

    View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)

    8、Spring MVC的异常处理 ?

    答:可以将异常抛给Spring框架,由Spring框架来处理;我们只需要配置简单的异常处理器,在异常处理器中添视图页面即可。

    9、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

    答:是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段。

    10、SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代?

    答:一般用@Conntroller注解,表示是表现层,不能用别的注解代替。

    11、 @RequestMapping注解用在类上面有什么作用?

    答:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

    12、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置?

    答:可以在@RequestMapping注解里面加上method=RequestMethod.GET。

    13、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

    答:直接在方法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面。

    14、SpringMvc中函数的返回值是什么?

    答:返回值可以有很多类型,有String, ModelAndView,但一般用String比较好。

    15、SpringMvc用什么对象从后台向前台传递数据的?

    答:通过ModelMap对象,可以在这个对象里面用put方法,把对象加到里面,前台就可以通过el表达式拿到。

    16、注解原理

    注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类。而我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象。通过代理对象调用自定义注解的方法,会最终调用AnnotationInvocationHandler的invoke方法。该方法会从memberValues这个Map中索引出对应的值。而memberValues的来源是Java常量池。

  • 相关阅读:
    【版本特性】sql server2012版本特性
    sql server2012中的format
    IOS插件管理器: alcatraz
    IOS中类似的。9.png图片
    IOS学习之路- 运行过程
    IOS学习之路--BLOCK
    IOS学习之路--OC的基础知识
    IOS学习之路-- 指针&宏函数
    域名解析问题。
    android点击状态分析
  • 原文地址:https://www.cnblogs.com/fuqiang-zhou/p/12613438.html
Copyright © 2011-2022 走看看