文章图片
下面列出了最常见的Spring MVC面试问题和答案。
1)什么是MVC?
MVC(模型-视图-控制器)是一种软件体系结构设计模式。它将应用程序的功能分为三个相互联系的部分-模型, 视图和控制器。这种方法有助于代码的可重用性和并行开发。
2)什么是Spring MVC?
Spring MVC是一个Java框架, 用于开发动态Web应用程序。它实现了核心Spring框架的所有基本功能, 例如控制反转和依赖注入。它遵循Model-View-Controller设计模式。
文章图片
这里,
- 模型-模型包含应用程序的数据。数据可以是单个对象或对象的集合。
- 控制器-控制器包含应用程序的业务逻辑。在这里, @Controller批注用于将类标记为控制器。
- 视图-视图以特定格式表示所提供的信息。因此, 我们可以使用JSP + JSTL, Apache Velocity, Thymeleaf和FreeMarker等视图技术来创建视图页面。
前端控制器是org.springframework.web.servlet包中存在的DispatcherServlet类。它将请求分派到适当的控制器并管理应用程序的流程。需要在web.xml文件中指定DispatcherServlet类。
4)解释Spring MVC的流程?
文章图片
- 生成请求后, 该请求将被充当前端控制器的DispatcherServlet拦截。
- DispatcherServlet从XML文件获取处理程序映射的条目, 并将请求转发给控制器。
- 控制器返回ModelAndView的对象。
- DispatcherServlet检查XML文件中视图解析器的条目, 并调用指定的视图组件。
以下是Spring MVC Framework的优点:-
- 单独的角色-Spring MVC将应用程序分为三个相互连接的层, 每个层都有其作用。
- 轻量级-它使用轻量级servlet容器来开发和部署你的应用程序。
- 强大的配置-它为框架和应用程序类提供了可靠的配置, 其中包括跨上下文的轻松引用, 例如从Web控制器到业务对象和验证器。
- 快速开发-Spring MVC促进了快速并行的开发。
- 可重用的业务代码-无需创建新对象, 它使我们可以使用现有的业务对象。
- 灵活的映射-它提供了可轻松重定向页面的特定注释。
Spring MVC应用程序包含一个附加的配置文件, 其中包含属性信息。可以以xml文件或属性文件的形式创建此文件。在此文件中, 我们通常定义基本程序包和视图解析器, DispatcherServlet在其中搜索控制器类并查看组件路径。但是, 它也可以包含各种其他配置属性。
7)Spring MVC中的InternalResourceViewResolver是什么?
InternalResourceViewResolver是一个类, 用于解析Spring MVC中的内部视图。在这里, 你可以定义诸如prefix和suffix之类的属性, 其中prefix包含视图页面的位置, 后缀包含视图页面的扩展名。例如:-
<
bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<
property name="prefix" value="http://www.srcmini.com/WEB-INF/jsp/">
<
/property>
<
property name="suffix" value="http://www.srcmini.com/.jsp">
<
/property>
<
/bean>
8)如何在Spring MVC中将类声明为控制器类?
@Controller批注用于将一个类声明为控制器类。需要在类名称上指定此批注。例如:-
@Controller
class Demo
{}
9)如何用URL映射控制器类及其方法?
@RequestMapping批注用于映射控制器类及其方法。你可以在类名称和方法名称上指定此批注, 并使用表示所请求页面路径的特定URL。例如:-
@Controller
@RequestMapping("/ form")
class Demo
{
@RequestMapping("/show")
public String display()
{}}
10)命名用于处理不同类型的传入HTTP请求方法的注释吗?
以下注释用于处理不同类型的传入HTTP请求方法:-
- @GetMapping
- @PostMapping
- @PutMapping
- @PatchMapping
- @DeleteMapping
@PathVariable批注用于提取URI模板的值。它在处理程序方法的参数中传递。
例如 :-
@RequestMapping("/show/{id}")
public String handler(@PathVariable("id") String s, Model map)
{
}
12)@ResponseBody注释在Spring MVC中起什么作用?
@ResponseBody批注用于在JSON中自动序列化返回的对象, 并将其与Http响应主体绑定。在这里, 不需要调用模型。
例如 :-
@RequestMapping("/show")
@ResponseBody
public ResponseHandler display(
@RequestBody ShowForm form) {
return new ResponseHandler("display form");
}
}
13)Spring MVC中Model接口的作用是什么?
Model接口用作包含应用程序数据的容器。在这里, 数据可以采用任何形式, 例如对象, 字符串, 数据库中的信息等。
点击这里了解更多详情
14)Spring MVC中的ModelAndView是什么意思?
ModelAndView是一个同时包含Model和View的类, 其中模型代表数据, 而view代表该数据的表示。此类以单个返回值返回模型和视图。
15)Spring MVC中的ModelMap是什么?
ModelMap是提供Map的实现的类。它扩展了LinkedHashMap类。它有助于传递值的集合, 就像它们在地图中一样。
16)在Spring MVC中从表单读取数据的方式有哪些?
以下是从表单读取数据的方法:-
- HttpServletRequest接口-HttpServletRequest是javax.servlet.http包中存在的java接口。像Servlets一样, 你可以在Spring中使用HttpServletRequest来读取用户提供的HTML表单数据。
- @RequestParam批注-@RequestParam批注读取表单数据并将其自动绑定到提供的方法中存在的参数。
- @ModelAttribute批注-@ModelAttribute批注将方法参数或其返回值绑定到命名的模型属性。
Spring MVC表单标签可以看作是可识别数据绑定的标签, 可以自动将数据设置为Java对象/ bean并从中进行检索。这些标记是网页的可配置和可重用的构建块。它提供了查看技术, 这是一种开发, 读取和维护数据的简便方法。
点击这里了解更多详情
18)通过Spring MVC的验证你了解什么?
验证是Spring MVC最重要的功能之一, 用于限制用户提供的输入。为了验证用户的输入, 需要使用Spring 4或更高版本和Bean Validation API。 Spring验证可以验证服务器端和客户端应用程序。
19)什么是Bean验证API?
Bean验证API是Java规范, 用于通过注释将约束应用于对象模型。在这里, 我们可以验证长度, 数字, 正则表达式等。除此之外, 我们还可以提供自定义验证。
由于Bean验证API只是一个规范, 因此需要实现。因此, 为此, 它使用了Hibernate Validator。 Hibernate Validator是完全兼容的JSR-303 / 309实现, 允许表达和验证应用程序约束。
20)Spring MVC中@Valid注释的用途是什么?
@Valid批注用于将验证规则应用于所提供的对象。
21)BindingResult在Spring MVC验证中的目的是什么?
BindingResult是一个包含验证信息的接口。例如 :-
@RequestMapping("/helloagain")
public String submitForm( @Valid @ModelAttribute("emp") Employee e, BindingResult br)
{
if(br.hasErrors())
{
return "viewpage";
}
else
{
return "final";
}
}
22)如何在Spring MVC的多个范围内验证用户的输入?
在Spring MVC验证中, 我们可以使用以下注释在一定范围内验证用户的输入:-
- @Min批注-需要传递带有@Min批注的整数值。用户输入必须等于或大于此值。
- @Max批注-需要传递带有@Max批注的整数值。用户输入必须等于或小于此值。
23)如何在Spring MVC中按特定顺序验证用户输入?
Spring MVC验证允许我们使用@Pattern批注来验证用户输入的特定顺序。在这里, 我们可以为regexp属性提供所需的正则表达式, 并将其与注释一起传递。
点击这里了解更多详情
24)Spring MVC中定制验证的目的是什么?
Spring MVC框架允许我们执行自定义验证。在这种情况下, 我们声明自己的注释。我们可以根据自己的业务逻辑执行验证。
点击这里了解更多详情
25)你对Spring MVC Tiles了解什么?
Spring提供了与apache tile框架的集成支持。因此, 我们可以借助Spring Tile支持来管理Spring MVC应用程序的布局。以下是Spring MVC支持Tiles的优势:-
- 可重用性:我们可以在多个页面中重用单个组件, 例如页眉和页脚组件。
- 集中控制:我们只能通过单个模板页面来控制页面的布局。
- 易于更改布局:借助单个模板页面, 我们可以随时更改页面的布局。因此, 你的网站可以轻松采用新技术, 例如引导程序和jQuery。
工作/人力资源面试问题 |
jQuery面试问题 |
Java OOP面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
JavaScript面试问题
Java基础面试问题
Servlet面试问题
Spring面试问题
PL / SQL面试问题
Oracle面试问题
【推荐!Spring MVC面试题和答案整理】SQL Server面试问题
推荐阅读
- 最全面的DB2面试题和答案解读
- 推荐!Cassandra面试题和答案合集
- 最新Struts面试题和答案整理
- 精品!Spring面试题和答案合集详解
- 史上最全!Spring Boot面试问题和答案整理
- RichFaces面试题和相关知识点汇总
- 别错过哦!PrimeFaces面试题和答案合集
- No migrations to apply. django同步数据库失败
- appium在windows下的安装