【200期】面试官:你能简单说说 SpringMVC 的执行原理吗?

点击上方“Java面试题精选”,关注公众号

面试刷图,查缺补漏

>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅

阶段汇总集合:001期~180期汇总,方便阅读(增加设计模式)

大家是否遇到过被面试官问了这样一句话:“来聊聊springmvc执行原理”。是的,springmvc的执行流程是面试的高频点,今天我就来浅谈它!

一、下面通过一个简单的springmvc程序去走进它。

1、在ssm中,springmvc作为controller层去实现处理请求,响应页面,所以需要controller层。

【200期】面试官:你能简单说说 SpringMVC 的执行原理吗?

HelloController这个类需要实现Controller这个接口,并且覆写handleRequest这个方法。

在类中编写如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

<!--    配置前端控制器-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--        初始化时加载配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
<!--        开启服务器时启动-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
<!--/和/*的区别
    /:只会去匹配请求,不会匹配jsp页面
    /*:会匹配所有请求
-->

        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

4、创建如下图jsp文件。

【200期】面试官:你能简单说说 SpringMVC 的执行原理吗?

5、将项目部署到tomcat上并运行。

如果出现404错误,可以去检查一下artifacts下面相应的war有没有jlib目录

【200期】面试官:你能简单说说 SpringMVC 的执行原理吗?

到此就运行成功了。

二、根据上面的程序来理解下面的执行原理。

下面分几步来解释:

1.DispatcherServlet前端控制器,作为整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。

2.HandlerMapping:处理器映射器,DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url去查找对应的处理。

3.HandlerExecution:具体的handler(处理),将解析后的url传递给DispatcherServlet。

4.HandlerAdapter:处理器适配器,将DispatcherServlet传递的信息去执行相应的controller。

5.Controller层中调用service层,获得数据放在ModelAndView对象中,并给ModelAndView设置页面信息。

6.HandlerAdapter将视图名传递给DispatcherServlet。

7.DispatcherServlet调用视图解析器来解析HandlerAdapter传递的视图名。

8.视图解析器将解析的视图名传给DispatcherServlet。

9.DispatcherServlet根据视图解析器返回的视图名调用具体的视图。

10.用户获得视图。

下图为执行原理图:

【200期】面试官:你能简单说说 SpringMVC 的执行原理吗?

END

来源:cnblogs.com/yang-guang-zhang/p/12896598.html

十期推荐

【181期】HashMap 面试二十一问!

【182期】SpringCloud常见面试题(2020最新版)

【183期】面试官:线上服务平均响应时间太长,怎么排查?

【184期】SQL数据库面试题以及答案(50例题)

【185期】面试官:你能说说 Synchronized实现对象锁的两种方式以及它的原理吗?

【186期】一口气说出 Synchronized 同步方法的八种使用场景

【187期】出现几率比较大的Redis面试题(含答案)

【188期】面试官:delete、truncate、drop的区别有哪些,该如何选择

【189期】delete后加 limit是个好习惯么

【190期】MQ消息中间件,面试能问写什么?


与其在网上拼命找题? 不如马上关注我们~

【200期】面试官:你能简单说说 SpringMVC 的执行原理吗?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/7629.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!