SpringMVC面试专题1
需积分: 0 19 浏览量
更新于2022-08-08
收藏 17KB DOCX 举报
【SpringMVC面试专题1】
1. **SpringMVC是什么?**
SpringMVC是Spring框架的一个核心模块,它是一个基于Model-View-Controller(MVC)架构的Web应用程序开发框架。SpringMVC允许开发者无需编写过多的Servlet代码,通过声明式配置或注解来处理请求和响应,简化了Web应用的开发流程。
2. **SpringMVC的优点**
- **基于组件技术**:SpringMVC中的所有应用对象,如控制器、视图以及业务对象,都是Java组件,并且与Spring提供的其他基础设施紧密集成。
- **不依赖Servlet API**:尽管在实现时SpringMVC确实依赖Servlet,但其设计目标是尽量减少对Servlet API的依赖。
- **灵活的视图技术**:开发者可以自由选择各种视图技术,不仅限于JSP。
- **多种请求资源映射策略**:SpringMVC提供了多种方式将请求映射到相应的处理方法。
- **可扩展性**:SpringMVC的架构设计使得扩展非常方便,适应不断变化的需求。
3. **SpringMVC的工作原理**
- 客户端向DispatcherServlet发送请求。
- DispatcherServlet查询handlerMapping找到合适的Controller来处理请求。
- Controller执行业务逻辑后,返回ModelAndView对象。
- DispatcherServlet根据ModelAndView找到对应的视图。
- 视图负责将结果渲染回客户端。
4. **SpringMVC的流程**
- 用户请求到达前端控制器DispatcherServlet。
- DispatcherServlet调用HandlerMapping找到具体的处理器。
- HandlerMapping返回处理器对象及可能的拦截器给DispatcherServlet。
- DispatcherServlet使用HandlerAdapter调用处理器。
- 控制器Controller执行后返回ModelAndView。
- HandlerAdapter将Controller的结果返回给DispatcherServlet。
- DispatcherServlet将ModelAndView传递给ViewResolver解析。
- ViewResolver解析后返回具体的View。
- DispatcherServlet根据View渲染视图并将结果响应给用户。
5. **SpringMVC控制器的单例模式问题**
SpringMVC的控制器默认是单例模式,多线程环境下可能导致线程安全问题。解决方案是避免在控制器中定义实例变量,或者使用ThreadLocal来确保线程局部变量的安全。
6. **SpringMVC与Struts2的区别**
- 入口不同:SpringMVC由Servlet(前端控制器)处理,Struts2由Filter(过滤器)处理。
- 开发方式:SpringMVC基于方法,每个URL对应一个方法;Struts2基于类,请求参数通过类的属性传递。
- 数据存取:SpringMVC使用参数解析器,通过方法参数接收和返回数据;Struts2使用值栈和OGNL存取数据。
7. **控制器注解**
在SpringMVC中,通常使用`@Controller`注解标记控制器类,表示该类是表现层的组件。没有其他注解可以直接替代`@Controller`,但可以结合`@RequestMapping`等其他注解进行更细致的路由控制。
8. **@RequestMapping类级别的作用**
`@RequestMapping`注解在类级别上表示类中的所有请求处理方法的公共前缀。
9. **请求映射到特定方法**
可以在方法上直接使用`@RequestMapping`注解,注解中的路径会指定该方法应处理的请求路径。
10. **拦截特定HTTP方法**
若要仅拦截GET请求,可以在`@RequestMapping`注解中添加`method=RequestMethod.GET`,或在方法上使用`@GetMapping`注解。
以上内容涵盖了SpringMVC的基本概念、优点、工作流程、控制器的单例模式问题、与Struts2的对比,以及请求映射等关键知识点,这些是面试中可能会遇到的问题。
傅融
- 粉丝: 32
- 资源: 333
最新资源
- 5G SRM815模组原理框图.jpg
- T型3电平逆变器,lcl滤波器滤波器参数计算,半导体损耗计算,逆变电感参数设计损耗计算 mathcad格式输出,方便修改 同时支持plecs损耗仿真,基于plecs的闭环仿真,电压外环,电流内环
- 毒舌(解锁版).apk
- 显示HEX、S19、Bin、VBF等其他汽车制造商特定的文件格式
- 操作系统实验 Ucore lab5
- 8bit逐次逼近型SAR ADC电路设计成品 入门时期的第三款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,3.3V供电 整体采样率500k,可实现基
- 操作系统实验 ucorelab4内核线程管理
- 脉冲注入法,持续注入,启动低速运行过程中注入,电感法,ipd,力矩保持,无霍尔无感方案,媲美有霍尔效果 bldc控制器方案,无刷电机 提供源码,原理图
- Matlab Simulink#直驱永磁风电机组并网仿真模型 基于永磁直驱式风机并网仿真模型 采用背靠背双PWM变流器,先整流,再逆变 不仅实现电机侧的有功、无功功率的解耦控制和转速调节,而且能实
- 157389节奏盒子地狱模式第三阶段7.apk