Summary of Common Interview Questions of SpringMVC

2024-05-05 14:44

本文主要是介绍Summary of Common Interview Questions of SpringMVC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. What is Spring MVC? Briefly introduce your understanding of spring MVC?

Spring MVC is a lightweight web framework based on Java that implements the request driven type of MVC design pattern. By separating Model, View and Controller, it decouples the responsibilities of the web layer, divides complex web applications into logical parts, simplifies development, reduces errors, and facilitates cooperation between developers in the group.

2. Spring MVC process?

(1) The user sends a request to the front-end controller DispatcherServlet;
(2) After the DispatcherServlet receives the request, it calls the HandlerMapping processor mapper to request to obtain a Handle;
(3) The processor mapper finds the specific processor according to the request url, generates the processor object and the processor interceptor (if any), and returns them to the DispatcherServlet;
(4) DispatcherServlet calls the HandlerAdapter processor adapter;
(5) The HandlerAdapter calls the specific processor (Handler, also called the back-end controller) through adaptation;
(6) The handler returns to ModelAndView after execution;
(7) The HandlerAdapter returns the Handler execution result ModelAndView to the DispatcherServlet;
(8) DispatcherServlet transmits ModelAndView to ViewResolver view parser for parsing;
(9) The ViewResolver returns the specific View after resolution;
(10) DispatcherServlet renders the view (that is, fills the model data into the view)
(11) DispatcherServlet responds to the user.

3. Advantages of Springmvc:

(1) It can support various view technologies, not limited to JSP;
(2) Integration with Spring framework (such as IoC container, AOP, etc.);
(3) Clear role assignment: front-end controller (dispatcherServlet), request to processor mapping (handlerMapping), processor adapter (HandlerAdapter), view resolver (ViewResolver).
(4) Support mapping strategies for various request resources.

4. What are the main components of Spring MVC?

(1) Front end controller DispatcherServlet (no programmer development required)
Function: Receiving request and response results is equivalent to a repeater. The DispatcherServlet reduces the coupling between other components.
(2) Processor mapper HandlerMapping (no programmer development required)
Function: Find the handler according to the requested URL
(3) Processor Adapter HandlerAdapter
Note: The handler should be written according to the rules required by the HandlerAdapter, so that the adapter HandlerAdapter can correctly execute the handler.
(4) Processor Handler (need programmer to develop)
(5) ViewResolver (not developed by programmers)
Function: analyze the view, and convert it into a real view according to the logical name of the view
(6) View (programmer needs to develop jsp)
View is an interface whose implementation class supports different view types (jsp, freemarker, pdf, etc.)

6. How does Spring MVC set redirection and forwarding?

(1) Forward: add “forward:” before the return value, such as “forward: user. do? Name=method4”
(2) Redirect: add “redirect:” before the return value, such as "redirect: http://www.baidu.com “

7. How does SpringMvc and AJAX call each other?

Through the Jackson framework, you can directly convert objects in Java into Json objects that Js can recognize. The specific steps are as follows:
(1) Join Jackson.jar
(2) Configure the mapping of json in the configuration file
(3) In accepting Ajax methods, you can directly return Object, List, etc., but the @ ResponseBody annotation should be added in front of the method.

8. How to solve the problem of Chinese garbled code in POST requests, and how to deal with GET?

(1) To solve the problem of garbled post requests:
Configure a CharacterEncodingFilter in web.xml and set it to utf-8;
(2) There are two ways to solve the problem of garbled Chinese parameters in the get request:
① Modify the tomcat configuration file to add a code consistent with the project code, as follows:
② Another method is to re code parameters:
String userName=new String (request. getParamter (“userName”). getBytes (“ISO8859-1”), “utf-8”)
ISO8859-1 is the default encoding of tomcat. The content encoded by tomcat needs to be encoded as utf-8.

9. Spring MVC exception handling?

Answer: You can throw exceptions to the Spring framework for processing; We just need to configure a simple exception handler and add a view page to the exception handler.

10. Is SpringMvc’s controller a singleton mode? If so, what are the problems and how to solve them?

A: It is a singleton mode, so there is a thread safety problem during multithreaded access. Do not use synchronization, which will affect performance. The solution is that you cannot write fields in the controller.

11. What are the common annotations of Spring MVC?

@RequestMapping: annotation for processing request url mapping, which can be used on classes or methods. If it is used on a class, it means that all methods in the class that respond to requests take this address as the parent path.
@RequestBody: annotation implements receiving the json data of http requests and converting json into java objects.
@ResponseBody: the annotation implementation converts the returned object of the coneoller method into a json object to respond to the customer.

12. The controller annotation in SpringMvc usually uses that annotation. Is there any other annotation that can replace it?

Answer: The @ Controller annotation is generally used, and the @ RestController annotation can also be used. The @ RestController annotation is equivalent to @ ResponseBody + @ Controller, representing the presentation layer. In addition, no other annotation is generally used instead.

13. If I want to intercept the get submission method in intercepting requests, how do I configure it?

A: You can add method=RequestMethod GET.

14. How to get the Request or Session in the method?

Answer: Declare the request directly in the formal parameter of the method, and SpringMvc will automatically pass in the request object.

15. If you want to get the parameters passed in from the foreground in the intercepting method, how can you get them?

Answer: It is OK to declare this parameter directly in the formal parameter, but the name must be the same as the passed parameter.

16. If there are many parameters passed in from the foreground, and these parameters are all the same object, how to get the object quickly?

Answer: Declare the object directly in the method, and SpringMvc will automatically assign the attribute to the object.

17. What is the return value of the function in SpringMvc?

Answer: The return value can have many types, including String and ModelAndView. The ModelAndView class combines views and data together, but it is generally better to use String.

18. What objects does SpringMvc use to transfer data from the background to the foreground?

Answer: Through the ModelMap object, you can call the put method in this object, add the object to it, and the foreground can get it through the el expression.

19. How to put the data in ModelMap into Session?

A: You can add @ SessionAttributes annotation to the class. The string contained in the annotation is the key to be put into the session.

20. How does the interceptor write in SpringMvc:

There are two writing methods, one is to implement the HandlerInterceptor interface, the other is to inherit the adapter class, and then implement the processing logic in the interface method; Then configure the interceptor in the configuration file of SpringMvc:

21. Annotation principle:

Annotation is a special interface that inherits Annotation in essence, and its specific implementation class is a dynamic proxy class generated by Java runtime. When we obtain annotations through reflection, we return the dynamic proxy object generated by the Java runtime. Calling a custom annotation method through a proxy object will eventually call the invoke method of AnnotationInvocationHandler. This method will retrieve the corresponding value from the memberValues map. The source of memberValues is the Java constant pool.

这篇关于Summary of Common Interview Questions of SpringMVC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961961

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2