download:内置yuan码2022升级百度大牛带你结合实践重学C++
SpringMvc基本面试知识点
1.什么是SpringMvc?
回答:springMvc是Spring的一个模块,基于Mvc的一个框架,不需要中间集成层来集成。
2.Spring MVC的优势:
答:
1)基于组件技术。所有应用程序对象,比如控制器和视图,以及业务对象,都是java。
组件。并且它与Spring提供的其他基础设施紧密集成。
2)它不依赖于Servlet API(虽然目标是这样的,但它在实现时确实依赖于Servlet)
3)可以随意使用各种视图技术,不仅仅是JSP。
4)支持各种请求资源的映射策略。
5)要容易扩展。
3.SpringMVC是如何工作的?
答:
1)客户端向DispatcherServlet发送请求。
2)DispatcherServlet查询handlerMapping以找到处理请求的控制器。
3)3)控制器调用业务逻辑后,返回ModelAndView。
4)DispatcherServlet查询ModelAndView以找到指定的视图。
5)视图将结果返回给客户端。
4.SpringMVC进程?
答:
1)用户向前端控制器DispatcherServlet发送请求。
2)DispatcherServlet接收调用HandlerMapping处理器映射器的请求。
3)处理器映射器找到特定的处理器(可以根据xml配置和注释进行搜索)并生成处理器对象。
和处理器拦截器(如果生成的话)返回给DispatcherServlet。
4)DispatcherServlet调用HandlerAdapter处理器适配器。
5)HandlerAdapter通过适配调用特定的处理器(控制器,也叫后端控制器)。
6)控制器在执行完成后返回ModelAndView。7)处理器会
控制器ModelAndView的执行结果返回给DispatcherServlet。
8)DispatcherServlet将ModelAndView传递给ViewReslover视图解析器。
9)ViewReslover解析后返回具体视图。
10)DispatcherServlet根据视图渲染视图(也就是将模型数据填充到视图中)。
11)DispatcherServlet响应用户。
6.SpringMvc的控制器是单例模式吗?如果有,是什么问题,如何解决?
答:是单例模式,所以多线程访问的时候不要用同步,会影响性能。解决它。
该方案是不能在控制器中写入该字段。
7.如果你也用过struts2。springMVC和struts2有什么区别?
答:
1)1)spring MVC的入口是servlet或者前端控制器,而struts2的入口是filter过滤器。
2)springmvc基于方法开发(一个url对应一个方法),请求参数传递给方法参数,可以
设计是单实例或者多实例(推荐单实例),struts2基于类开发,传递参数是通过类的属性,只能设置。
数尽可能多的情况。
3)Struts使用值栈存储请求和响应的数据,通过OGNL访问数据,springmvc通过参数求解数据。
Parser解析请求内容,为方法参数赋值,并将数据和视图封装到ModelAndView中。
对象,最后ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器
使用jstl。
8.SpingMvc中控制器的注释通常是那个。有没有其他注解可以替代?
答:一般用@Conntroller标注,表示是表示层,不能用其他标注代替。
9.在类上使用的@RequestMapping注释的作用是什么?
答:它是一个用来处理请求地址映射的注释,可以用在类或方法上。用在类上,它指示
所有响应请求的方法都使用这个地址作为父路径。
10.如何将请求映射到特定的方法?
答:直接在方法中添加注释@RequestMapping,在这个注释中写下要拦截的路径。
1.如果我想拦截拦截请求中get提交的方法,该怎么配置?
答:可以添加method=RequestMethod。获取@RequestMapping注释。
12.我如何在方法中获得请求或会话?
答:直接在方法的参数中声明请求,Spring MVC会自动传入请求对象。
13.我想在拦截方法中获取前台传入的参数。我如何得到它们?
答:可以直接在参数中声明这个参数,但是名称必须和传递的参数相同。
14.如果前台传入了很多参数,并且这些参数都属于一个对象,那么如何快速获取这个对象呢?
答:直接在方法中声明这个对象,SpringMvc会自动将属性赋给这个对象。
15.SpringMvc中函数的返回值是多少?
答:返回值的类型有很多种,包括String、ModelAndView。最好使用字符串作为一般规则。
16.SpringMVC如何设置重定向和转发?
答:可以通过在返回值前面加“forward:”来转发结果,比如“forward:user.do?”name=method4 "在
在返回值前添加“redirect:”对返回值进行重定向,如“redirect: http://www.baidu.com”
17.SpringMvc用什么对象把数据从后台传到前台?
答:通过ModelMap对象,可以使用这个对象中的put方法,将对象添加到其中,前台就可以通信了。
通过el表情获取。
18.SpringMvc中有一个将视图和数据结合在一起的类。它叫什么?
答:叫ModelAndView。
19.如何将ModelMap中的数据放入会话中?
答:可以给类添加@SessionAttributes注释,其中包含的字符串要放入会话中。
的关键字
20.SpringMvc如何与AJAX交互?
答:
通过Jackson框架,Java中的对象可以直接转换成JS可以识别的JsON对象。
具体步骤如下:
1)加入Jackson.jar
2)在配置文件中配置json的映射
3)在接受Ajax方法时,可以直接返回对象、列表等。但是该方法前面应该有@ResponseBody。
给…作注解
21.当一个方法向AJAX返回一个特殊的对象,比如object,List等。,你需要做什么?
答:应该添加@ResponseBody注释。
2.SpringMvc中拦截器是怎么写的?
答:有两种方式写,一种是实现接口,一种是继承adapter类,然后在SpringMvc的配置文件里。
只需配置拦截器:
mvc:拦截器
mvc:拦截器
23.说说SpringMvc的执行过程。
答:系统启动时,spring的容器是根据配置文件创建的。首先,http请求被发送到核心控制器。
DisPatherServlet,spring容器使用mapper来查找服务控制器,使用adapter来查找相应的服务。
类,数据封装是在进入业务类时执行的。在封装之前可能会涉及到类型转换,在执行业务类之后会用到。
ModelAndView转发视图,将数据放入模型中,并使用地图传输数据以供页面显示。