一、SpringMVC
1. SpringMVC 的工作原理(2017-11-13-lyq)
a. 用户向服务器发送请求,请求被 springMVC 前端控制器 DispatchServlet 捕获;
b. DispatcherServle 对请求 URL 进行解析,得到请求资源标识符(URL),然后根据该 URL 调用 HandlerMapping
将请求映射到处理器 HandlerExcutionChain;
c. DispatchServlet 根据获得 Handler 选择一个合适的 HandlerAdapter 适配器处理;
d. Handler 对数据处理完成以后将返回一个 ModelAndView()对象给 DisPatchServlet;
e. Handler 返回的 ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet 通过
iewResolver 试图解析器将逻辑视图转化为真正的视图 Viewh. DispatcherServle 通过 model 解析出 ModelAndView()中的参数进行解析最终展现出完整的 view 并返回给
客户端;感恩于心,回报于行。 面试宝典系列-Java
ttp://www.itheima.com Copyright© 2018 黑马程序员
388
2. SpringMVC 常用注解都有哪些?(2017-11-24-gxb)
@requestMapping 用于请求 url 映射。
@RequestBody 注解实现接收 http 请求的 json 数据,将 json 数据转换为 java 对象。
@ResponseBody 注解实现将 controller 方法返回对象转化为 json 响应给客户。
3. 如何开启注解处理器和适配器?(2017-11-24-gxb)
我们在项目中一般会在 springmvc.xml 中通过开启 <mvc:annotation-driven>来实现注解处
理器和适配器的开启。
4. 如何解决 get 和 post 乱码问题?(2017-11-24-gxb)
解决 post 请求乱码:我们可以在 web.xml 里边配置一个 CharacterEncodingFilter 过滤器。 设置为 utf-8.
解决 get 请求的乱码:有两种方法。对于 get 请求中文参数出现乱码解决方法有两个: 感恩于心,回报于行。 面试宝典系列-Java
ttp://www.itheima.com Copyright© 2018 黑马程序员
389
1. 修改 tomcat 配置文件添加编码与工程编码一致。
2. 另 外 一 种 方 法 对 参 数 进 行 重 新 编 码 String userName = New
tring(Request.getParameter(“userName”).getBytes(“ISO8859-1”), “utf-8”);
二、Spring
1. 谈谈你对 Spring 的理解(2017-11-13-lyq)
Spring 是一个开源框架,为简化企业级应用开发而生。Spring 可以是使简单的 JavaBean 实现以前只有 EJB 才能
实现的功能。Spring 是一个 IOC 和 AOP 容器框架。
Spring 容器的主要核心是:
控制反转(IOC),传统的 java 开发模式中,当需要一个对象时,我们会自己使用 new 或者 getInstance 等直接
或者间接调用构造方法创建一个对象。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对
象,不需要我们自己创建了,直接调用 spring 提供的对象就可以了,这是控制反转的思想。
依赖注入(DI),spring 使用 javaBean 对象的 set 方法或者带参数的构造方法为我们在创建所需对象时将其属
性自动设置所需要的值的过程,就是依赖注入的思想。
面向切面编程(AOP),在面向对象编程(oop)思想中,我们将事物纵向抽成一个个的对象。而在面向切面编程
中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事物管理,记录日志等
公用操作处理的过程就是面向切面编程的思想。AOP 底层是动态代理,如果是接口采用 JDK 动态代理,如果是类采用
GLIB 方式实现动态代理。
2. Spring 中的设计模式(2017-11-13-lyq)
a. 单例模式——spring 中两种代理方式,若目标对象实现了若干接口,spring 使用 jdk 的 java.lang.reflect.Proxy感恩于心,回报于行。 面试宝典系列-Java
类代理。若目标兑现没有实现任何接口,spring 使用 CGLIB 库生成目标类的子类。
单例模式——在 spring 的配置文件中设置 bean 默认为单例模式。
b. 模板方式模式——用来解决代码重复的问题。
比如:RestTemplate、JmsTemplate、JpaTemplate
d. 前端控制器模式——spring 提供了前端控制器 DispatherServlet 来对请求进行分发。
e. 试图帮助(view helper)——spring 提供了一系列的 JSP 标签,高效宏来帮助将分散的代码整合在试图中。
f. 依赖注入——贯穿于 BeanFactory/ApplacationContext 接口的核心理念。
g. 工厂模式——在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用同一个接口来
指向新创建的对象。Spring 中使用 beanFactory 来创建对象的实例。
Spring
最新推荐文章于 2023-11-08 17:08:36 发布