每日一题
HashMap与HashTable的区别
HashMap没有考虑同步,是线程不安全的;Hashtable使用了synchronized关键字,是线程安全的
HashMap允许K/V都为null;后者K/V都不允许为null
HashMap继承自AbstractMap类;而Hashtable继承自Dictionary类(已过时),建议使用conCurrentHashMap;
SpringMvc的工作原理
1、用户发送请求至前端控制器DispatcherServlet;
2、DispatcherServlet收到请求调用HandlerMapping映射
3、通过映射找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
4、DispatcherServlet调用HandlerAdapter处理器适配器;
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器);
6、Controller执行完成返回ModelAndView;
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet;
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器;
9、ViewReslover解析后返回具体View(含有数据),并响应;
Spring中的作用域
singleton:默认,每个容器中只有一个bean的实例
prototype:为每一个bean请求提供一个实例
request:为每一个网络请求创建一个实例
session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。
global-session:global-session和Portlet应用相关