什么是SpringMVC框架
Spring 配备构建Web 应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。
Spring MVC是一个基于MVC的Web框架,是Spring框架的一个模块。Spring MVC和Spring无需通过中间整合层进行整合。
SpringMVC 的执行流程
- 将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
- DispatcherServlet查询一个或多个HandlerMapping,找到对应处理请求的Controller。
- DispatcherServlet将请求提交到目标Controller。
- Controller进行业务逻辑处理后,会返回一个ModelAndView。
- DispatcherServlet查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。
- 视图对象负责渲染返回给客户端。
SpringMVC 怎么和 Ajax 相互调用的
通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。
具体步骤如下:
- 加入Jackson.jar。
- 在配置文件中配置json的映射。
- 在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解。
Spring MVC 的拦截器写法
有两种写法,一种是实现接口,另外一种是继承适配器类,然后在Spring MVC的配置文件中配置拦截器即可。
定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。
- preHandle:进入 Handler方法之前执行,用于身份认证、身份授权,比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行
- postHandle:进入Handler方法之后,返回modelAndView之前执行,应用场景从modelAndView出发:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一指定视图。
- afterCompletion:执行Handler完成执行此方法,应用场景:统一异常处理,统一日志处理。