SpringMVC常见面试题汇总(超详细解答)

 2024-02-23 03:03:36  阅读 0

预计阅读时间:12 分钟

1.什么是MVC? 简单介绍一下你的理解吧?

MVC是一个基于Java的轻量级Web框架,实现了请求驱动型的MVC设计模式。 通过分离Model和View,Web层与职责解耦,复杂的Web应用被划分为逻辑清晰的部分。 简化开发、减少错误并促进团队内开发人员之间的合作。

2.过程?

(1) 用户向前端控制器发送请求;

(2)收到请求后,调用处理器映射器并请求获取;

(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象和处理器拦截器(有的话生成)并一起返回;

(4) 调用处理器适配器;

(5)适配后调用具体的处理器(也称为后端控制器);

(6)执行完成后返回;

(7)返回执行结果;

(8) 传递给视图解析器进行解析;

(9) 解析后返回具体的View;

(10)渲染View(即将模型数据填充到视图中)

(11)回复用户。

3、优点:

(1)可以支持各种视图技术,而不仅仅是JSP;

(2)与框架集成(如IoC容器、AOP等);

ajax传递中文参数问题_ajax传输_ajax传递参数类型

(3)明确的角色分配:前端控制器()、请求到处理器映射()、处理器适配器()、视图解析器()。

(4) 支持各种请求资源的映射策略。

4.MVC的主要组成部分是什么?

(1)前端控制器(无需编程器开发)

作用:接收请求和响应结果,相当于一个转发器,减少了其他组件之间的耦合度。

(2) 处理器映射器(无需程序员开发)

功能:根据请求的URL进行搜索

(3) 处理器适配器

注意:编写时必须遵循所需的规则,这样适配器才能正确执行。

(4)处理器(需要程序员开发)

(5)视图解析器(无需程序员开发)

作用:解析视图,根据视图逻辑名解析为真实的视图(view)

(6)View视图(程序员需要开发jsp)

View是一个接口,其实现类支持不同的视图类型(jsp、pdf等)

5. 和 之间有什么区别?

(1)的入口是前端控制器(),入口是过滤器()。

(2)基于方法开发(一个URL对应一种方法)。 请求参数传递给方法的形参,可以设计为单例,也可以设计为多例(推荐单例)。 它基于类开发,通过类的属性来传递参数。 ,只能针对多个实例进行设计。

(3) 值栈用于存储请求和响应数据,通过OGNL访问数据。 通过参数解析器解析请求内容,并为方法参数赋值。 将数据和视图封装成对象,最后将Data中的模型通过域传输到页面。 Jsp视图解析器默认使用jstl。

6. 如何设置重定向和转发?

(1)转发:在返回值前添加“:”,如“:user.do?name=”

(2)重定向:在返回值前面添加“:”,如“:”

7.如何用AJAX互相调用?

通过该框架,可以将Java中的对象直接转换为Js可以识别的Json对象。 具体步骤如下:

(1)添加.jar

(2)在配置文件中配置json映射

(3)在接受Ajax的方法中,可以直接返回List等,但方法前面必须添加@注解

8、POST请求出现中文乱码问题如何解决,GET请求如何处理?

(1)解决post请求乱码问题:

在web.xml中配置ter过滤器,设置为utf-8;

特尔

org..web..ter

UTF-8

特尔

/*

(2)get请求中文参数乱码的解决方法有两种:

① 修改配置文件,添加与项目代码一致的代码,如下:

②另一种重新编码参数的方法:

= new (.("").("-1"),"utf-8")

-1为默认编码,编码内容需要采用UTF-8编码。

9.MVC异常处理?

答:异常可以抛给框架,由框架处理; 我们只需要配置一个简单的异常处理程序,并在异常处理程序中添加一个视图页面即可。

10. 控制器是否处于单例模式? 如果有,存在哪些问题以及如何解决?

答:是单例模式,所以多线程访问时存在线程安全问题。 不要使用同步,这会影响性能。 解决方案是不要在控制器中写入字段。

11、常用的注解有哪些?

@:用于处理请求URL映射的注解,可用于类或方法上。 当用在类上时,意味着该类中所有响应请求的方法都使用该地址作为父路径。

@:该注解实现接收http请求的json数据,并将json转换为java对象。

@:该注解实现将方法返回对象转换为json对象并响应客户端。

12. 中的控制器一般使用哪个注解? 有没有其他注释可以代替?

答:一般用@注解来表示是表示层,不能用其他注解代替。

13、如果我想在拦截请求时拦截以get方式提交的方法,如何配置?

答:可以在@注解中添加=.GET。

14.方法中如何获取?

答:如果直接在方法的形参中声明的话,对象会自动传入。

15.如果想在拦截方法中获取前台传入的参数,如何获取?

答:可以直接在形参中声明该参数,但名称必须与传递的参数相同。

标签: 请求 视图 注解

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码