一、什么是SpringMvc?
- SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
(概述:Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架)
二、SpringMVC的工作流程
三、Springmvc的优点:
- 可以支持各种视图技术,而不仅仅局限于JSP
- 与Spring框架集成(如IoC容器、AOP等)
- 清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射器(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)
- 支持各种请求资源的映射策略
四、Spring MVC的主要组件?
- 前端控制器 DispatcherServlet:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。
- 处理器映射器HandlerMapping:根据请求的URL来查找Handler
- 处理器适配器HandlerAdapter
- 处理器Handler(需要程序员开发)
- 视图解析器 ViewResolver:进行视图的解析,根据视图逻辑名解析成真正的视图(view)
- 视图View:View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)
五、SpringMVC和struts2的区别有哪些?
- springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
- springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
- Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。
六、SpringMVC 都有哪些常用注解?
- @Controller:创建类对象 相当于配置。
- @RquestMapping: 用于请求 url 映射。
- @RequestBody :注解实现接收 http 请求的 json 数据,将 json 数据转换为 java 对象。
- @ResponseBody:注解实现将 controller 方法返回对象转化为 json 响应给客户。
- @Autowired:注入bean。