SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。
DispatcherServletDispatcherServlet 查询
handlerMapping 找到处理请求的
ControllerController 调用业务逻辑后,返回
ModelAndViewDispatcherServlet 查询
ModelAndView,找到指定视图DispatcherServlet。DispatcherServlet 收到请求调用
HandlerMapping 处理器映射器。DispatcherServlet。DispatcherServlet 调用
HandlerAdapter 处理器适配器。HandlerAdapter 经过适配调用具体的处理器(
Controller,也叫后端控制器)。Controller 执行完成返回
ModelAndView。HandlerAdapter 将 controller 执行结果
ModelAndView 返回给
DispatcherServlet。DispatcherServlet 将
ModelAndView 传给
ViewReslover 视图解析器。ViewReslover 解析后返回具体 View。DispatcherServlet 根据 View 进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet 响应用户。ModelAndView 对象,最后又将
ModelAndView 中的模型数据通过 reques 域传输到页面。Jsp 视图解析器默认使用 jstl。是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
在返回值前面加
"forward:"就可以让结果转发,譬如
"forward:user.do?name=method4"
在返回值前面加
"redirect:"就可以让返回值重定向,譬如
"redirect:http://www.baidu.com"
通过 Jackson 框架就可以把 Java 里面的对象直接转化成 Js 可以识别的 Json 对象。
具体步骤如下 :
Jackson.jar@ResponseBody 注解有两种写法,一种是实现接口,另外一种是继承适配器类,然后在 SpringMVC 的配置文件中配置拦截器即可:
<!-- 配置 SpringMvc 的拦截器 --><mvc:interceptors>
<!-- 配置一个拦截器的 Bean 就可以了 默认是对所有请求都拦截 -->
<bean id="myInterceptor" class="com.et.action.MyHandlerInterceptor"></bean>
<!-- 只针对部分请求拦截 -->
<mvc:interceptor>
<mvc:mapping path="/modelMap.do" />
<bean class="com.et.action.MyHandlerInterceptorAdapter" />
</mvc:interceptor></mvc:interceptors>系统启动的时候根据配置文件创建 spring 的容器, 首先是发送 http 请求到核心控制器
disPatherServlet,spring 容器通过映射器去寻找业务控制器,使用适配器找到相应的业务类,在进业务类时进行数据封装,在封装前可能会涉及到类型转换,执行完业务类后使用
ModelAndView 进行视图转发,数据放在
model 中,用
map 传递数据进行页面显示。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69964492/viewspace-2766190/ ,如需转载,请注明出处,否则将追究法律责任。