java面试题《十、SpringMVC》
1.什么是SpringMVC?
SpringMVC是一个基于java的实现MVC设计模式的请求驱动类型的轻量级WEB框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发、减少出错,方便组内开发人员的配合。
2.SpringMVC的主要组件?
(1)前端控制器DispatcherServlet,接收请求,响应结果。
(2)处理器映射器HandlerMapping,根据请求的URL来查找Handler。
(3)处理器适配器HandlerAdapter
(4)处理器Handler
(5)视图解析器,进行视图的解析,根据视图逻辑名解析成真正的视图。
(6)视图View
3.SpringMVC的工作流程?
(1)用户发送请求到前端控制器DispatcherServlet;
(2)DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle。
(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器,返回给DispatcherServlet。
(4)DispatcherServlet调用HandlerAdapter处理器适配器。
(5)HanderAdapter经过适配调用具体处理器。
(6)Hander执行完成后返回ModelAndView。
(7)HanderAdapter将Handler执行结果ModelAndView返回给DispatcjerServlet。
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析。
(9)ViewResolver解析后返回具体的View
(10)DispatcherServlet对view进行渲染视图。
(11)DispatcherServlet响应用户。
4.SpringMVC常用注解有哪些?
@RequestMapping
@RequestBody:接受http请求的json数据,将json转化为java对象。
@ResponseBody:将controller方法返回对象转化为json对象相应给客户。
5.SpringMVC与Struts2的区别
(1)前端控制器不一样。SpringMVC前端控制器是servlet:DispatcherServlet。Struts2的前端控制器是filter:StrutsPreparedAndExcutorFilter。
(2)请求参数的接收方式不一样。SpringMVC是使用方法的形参接收请求的参数,基于方法的开发;Struts2是通过类的成员变量接收请求的参数,是基于类的开发。
6.如何解决POST请求中文乱码问题,Get的又如何处理?
(1)post请求:在web.xml中配置一个CharacterEncodingFilter过滤器,设置成utf-8
(2)get请求:修改tomcat配置文件添加编码与工程编码一致;另外一种方法对参数进行重新编码。
7.SpringMVC里面的拦截器是怎么写的?
(1)实现HandlerInterceptor
(2)继承适配器类,在接口方法中实现处理逻辑,然后再Springmvc的配置文件中配置拦截器。
浙公网安备 33010602011771号