Spring交互层框架
问题:大量的配置&大量的冗余代码[不清楚目的:原因还是体会不到现在所谓的冗余代码的困扰!!!]——需要项目实践
【1】web.xml配置
【2】冗余代码:
-获取参数
-转发重定向
-异常处理
-响应流的写出,输出json
【3】交互层框架的设计目标
-减少配置文件的注册项——通过注解方式
-减少冗余代码的编写量——封装代码块
设计:这块提了,但是自己脑子里根本没有这个概念???——还是对Spring框架理解偏差??
【1】DespatcherServlet:唯一的交互媒介与前端
【2】ContextLoadListener:作为服务启动时初始化容器时使用
【3】如何抵达controller
-哪些bean是Controller
-通过接口识别
-通过注解(Controller)方式
-
-如何把url和controller的 bean映射到一起
-通过注解来添加属于controller地映射关系
-
-如何把url和controller当中的方法映射到一起
-通过注解(RequestMapping)来添加属于method地映射关系
-
-如何把参数填入controller的方法对应参数当中,即如何获取请求的参数
- 通过注解(RequestParameter)来添加属于参数的映射关系
-
=======================初始化工作完成==========================
=====主要:加载容器与加载请求映射信息——请求尚未抵达
-如何把要转发的属性,填入request作用域
-使用ModelMap来保存,转发属性
-如何分辨转发还是重定向
-通过view来判断是转发还是重定向
-不写:转发
-如何分辨是转发重定向,还是响应流
-使用注解(ResponseBody)来让当前方法以响应流的方式往外写
-如何分辨是文件上传,还是普通表单上传
-
-
-如何保持上传的文件
-
-
-如何设计一种可以取代filter的功能,即拦截器
-
-
MVC的调度认识:
【1】对监听器、过滤器目前处于 知道是什么,生命周期如何,以及简单应用。具体在实际框架中的如何发挥作用还不明确!
【2】对转发的uri地址不发生变化;重定向则会uri变更为重定向。
【3】真正对Servlet【*.d0】在前端 jsp 表单页面的action地址之间跳转!,然后servlet通过mvc三层架构处理获取数据!
【4】现在源码就是实现前面这些案例!
【5】
Tips: 对泛型的应用:集合中 toArray() toArray(T[]) ||
Map<String, Object> map = new HashMap<>();
map.put("1", 1);
map.put("a", 2);
map.put("b", 2);
System.out.println(Arrays.toString(map.keySet().toArray()));
String[] strings = (String[])map.keySet().toArray(new String[0]);
服务器支持多个项目同时加载!——通过项目名区别开||
-但是容易混淆不同项目监听器、过滤器等提示消息
整体流程:
【1】通过contextListener 加载xml配置文件中的controller\service\dao
【2】通过Servlet初始化handerMap——主要包括:映射的uri\bean\method\parameters\[arameters_type
【3】通过handerMap获取到对应的 HanderChain——主要包括:判断是否是表单元素与文件元素
【4】通过chain获取到Model 、 View渲染到不同的页面中
【5】细节略