推荐!Spring MVC面试题和答案整理

Spring MVC面试问题

下面列出了最常见的Spring MVC面试问题和答案。

1)什么是MVC?

MVC(模型-视图-控制器)是一种软件体系结构设计模式。它将应用程序的功能分为三个相互联系的部分-模型, 视图和控制器。这种方法有助于代码的可重用性和并行开发。


2)什么是Spring MVC?

Spring MVC是一个Java框架, 用于开发动态Web应用程序。它实现了核心Spring框架的所有基本功能, 例如控制反转和依赖注入。它遵循Model-View-Controller设计模式。

Spring MVC教程

这里,

  • 模型-模型包含应用程序的数据。数据可以是单个对象或对象的集合。
  • 控制器-控制器包含应用程序的业务逻辑。在这里, @Controller批注用于将类标记为控制器。
  • 视图-视图以特定格式表示所提供的信息。因此, 我们可以使用JSP + JSTL, Apache Velocity, Thymeleaf和FreeMarker等视图技术来创建视图页面。

3)Spring MVC的前端控制器是什么?

前端控制器是org.springframework.web.servlet包中存在的DispatcherServlet类。它将请求分派到适当的控制器并管理应用程序的流程。需要在web.xml文件中指定DispatcherServlet类。


4)解释Spring MVC的流程?

Spring MVC教程
  • 生成请求后, 该请求将被充当前端控制器的DispatcherServlet拦截。
  • DispatcherServlet从XML文件获取处理程序映射的条目, 并将请求转发给控制器。
  • 控制器返回ModelAndView的对象。
  • DispatcherServlet检查XML文件中视图解析器的条目, 并调用指定的视图组件。

5)Spring MVC Framework的优点是什么?

以下是Spring MVC Framework的优点:-

  • 单独的角色-Spring MVC将应用程序分为三个相互连接的层, 每个层都有其作用。
  • 轻量级-它使用轻量级servlet容器来开发和部署你的应用程序。
  • 强大的配置-它为框架和应用程序类提供了可靠的配置, 其中包括跨上下文的轻松引用, 例如从Web控制器到业务对象和验证器。
  • 快速开发-Spring MVC促进了快速并行的开发。
  • 可重用的业务代码-无需创建新对象, 它使我们可以使用现有的业务对象。
  • 灵活的映射-它提供了可轻松重定向页面的特定注释。

6)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="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".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

11)Spring MVC中@PathVariable注释的目的是什么?

@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批注将方法参数或其返回值绑定到命名的模型属性。

17)什么是Spring MVC表单标签库?

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面试问题

SQL Server面试问题

来源:

https://www.srcmini02.com/33555.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?