- 什么是SpringMVC?
- SpringMVC是一个基于Java实现了MVC设计模式的轻量级Web框架。通过把model-view-controller进行分离,将Web层进行职责解耦,把Web应用分成逻辑清晰的几部分,方便开发人员之间的配合
- SpringMVC的执行流程?
- 用户发送请求给DispatcherServlet,DispatcherServlet调用HandlerMapping
- HandlerMapping通过请求中的URL找到对应的Handler,并返回Handler给DispatcherServlet
- DispatcherServlet调用HandlerAdapter请求执行Handler,执行结束返回ModelAndView
- DispatcherServlet调用ViewResolver进行解析ModelAndView,返回真正的视图对象
- DispatcherServlet对视图对象进行渲染,渲染结束就将此视图返回给用户
- SpringMVC的优点是什么?
- 支持多种视图类型,不仅仅局限于JSP
- 与Spring很好的集成
- 有明确的角色分配:
- 前端控制器(DispatcherServlet)
- 处理器映射器(HandlerMapping)
- 处理器适配器(HandlerAdapter)
- 视图解析器(ViewResolver)
- 支持任何资源的映射策略
- SpringMVC和Struts2的区别?
- 拦截级别:
- SpringMVC是方法级别的拦截
- Struts2是类级别的拦截
- 数据的独立性:
- SpringMVC的方法之间是独立的,独享request和response数据,请求数据通过参数获取,处理数据通过ModelMap交回框架
- Struts2方法也是独立的,但所有的action都是共享的,虽然不会对程序执行造成影响,但是对开发者开发和读程序时带来麻烦
- 拦截方式:
- SpringMVC用独立的AOP方式
- Struts2有自己的interceptor机制,这就导致要比SpringMVC的配置文件要多
- 对Ajax的支持:
- SpringMVC集成了Ajax,使用Ajax更加方便,我们可以使用@ResponseBody注解进行实现
- Struts2一般需要安装插件或者自己手写代码进行实现
- 拦截级别:
- Spring的重要组件?
- 前端控制器(DispatcherServlet):主要接受请求,响应结果,相当于一个转发器。它可以降低其他组件的耦合度
- 处理器映射器(HandlerMapping):通过请求的URL查询到Handler
- 处理器适配器(HandlerAdapter):编写Handler时要按照HandlerAdapter的规则进行编写,这样才能保证HandlerAdapter正常执行Handler
- 处理器(Handler 需要开发者开发)
- 视图解析器(ViewResolver):解析视图,根据视图逻辑名解析成真正的视图对象
- 视图(View):是一个接口,实现类拥有多种不同的视图类型(如:JSP、FreeMarker、PDF等)
- SpringMVC常用的注解有哪些?
- @RequestMapping:用于处理请求http映射的注解,可以在类和方法上使用。当时用在类上时,此类中所有响应的方法都以此地址作为父路径
- @RequestBody:注解实现接收http请求的json数据,将json对象转为Java对象
- @ResponseBody:注解实现controller响应数据的Java对象转为json对象并响应给客户
- 说一说注解的原理是什么?
- 注解就是一个继承了Annotation的特殊接口,其实现类就是在运行时动态的生成代理对象。在我们通过反射获取注解时,会返回Java运行时生成的动态代理对象。通过代理对象调用自定义注解的方法,会最终调用AnnotationInvocationHandler的invoke()方法。该方法会从memberValues这个map中索引出对应的值,memberValues中的数据来自Java的常量池
原文地址:https://www.cnblogs.com/Fmir/p/11526610.html
时间: 2024-10-18 20:51:47