陌陌一面:
面试官很和蔼,有些不会的会给你提醒,然后会跟你说清楚,面试体验很不错
1、自我介绍
2、叫我介绍我弄的项目,我随便介绍了其中一个
3、说一些SpringMVC的一个执行过程
SpringMVC执行流程:
1、用户请求发送到前端控制器DispatcherServlet
2、DispatcherServlet收到请求去调用处理器映射器RequestMapping
3、处理器映射器去寻找具体的处理器(可以根据xml文件或者注解查找),生成处理器以及处理器拦截器。并返回给DispatcherServlet.
4、DispatcherServlet调用处理器适配器HandlerAdapter
5、处理器适配器调用Controller层业务代码
6、Controller层获取到结果返回ModelAndview
7、HandlerAdapter将结果返回给DispatcherServlet
8、DispatcherServlet调用视图解析器,将结果传给视图解析器
9、视图解析器解析结果后返回具体的view
10、DispatcherServlet根据View进行渲染视图
11、DispatcherServlet响应客户
5、扯了一些项目其他的,应该是我MVC流程那块没有说清楚,所以想结合项目一起问问,比如前端的登录怎么找到我controller层的那个方法
主要是通过视图解析器来实现,视图解析器将String类型的视图名和Locale解析为view类型的视图。View是用来渲染界面的。也就是将程序返回的参数回填到模板。
如果视图解析器不能通过ViewName来获取Name,那么只能够通过Request来获取
注解RequestMapping
@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
怎么处理数据的乱码?
1、如果是前端导致出现乱码,可以更改前端编码设置
2、如果是后端出现乱码,可以选择在web.xml文件中设置编码类型获取自己编写过滤器
3、如果是数据库出现乱码,更改数据库配置文件
springmvc九大组件
6、ArrayList和LinkedList的区别:
ArrayList:
-
基于动态数组,连续内存存储,适合下标访问(随机访问)
-
扩容机制:由于数组长度固定,超出存取长度时创建新的数组,然后将老数组的数据拷贝到新数组中
-
如果不是尾插数据会涉及元素的移动(往后复制一份,然后插入新数据),但是如果采用尾插法并