Spring MVC温故而知新 – 从零开始,思维图+核心+架构让你一步到位

1:用户发起请求,请求会被前端控制器(DispatcherServlet)拦截

2:前端控制器(DispatcherServlet)请求处理器映射器(HandlerMapping)查找Handler

3:处理器映射器(HandlerMapping)根据配置找到相应Handler(可以更具注解或者XML配置),可能包含多个Interceptor拦截器,返回给前端控制器

4:前端控制器(DispatcherServlet)请求处理器适配器(HandlerAdapter)去执行相应的Handler

5:适配器交由对应Handler处理器执行

6:  Handler处理器执行完成后返回ModelAndView对象给处理器适配器

7:处理器适配器接受Handler处理器的返回结果,并将该结果返回给前端控制器(DispatcherServlet)

8:前端控制器(DispatcherServlet)接收处理器适配器返回的数据和视图信息,请求视图解析器,解析对应的视图

9:视图解析器根据View信息匹配的相应的视图结果,反回给前端控制器

10:前端控制器接收具体视图,进行视图渲染,将Model数据填充到View视图中,生成最终视图

11:前端控制器向用户返回结果

从零开始搭建demo

创建工程:

Eclipse下新建一个动态Web项目

工程默认目录结构:

添加jar包依赖

WebContent > WEB-INF > lib 文件夹下导入相应的jar包,其中核心的jar包是spring-webmvc-5.0.0.RELEASE.jar,其他是几个主要是spring用于管理上下文和beande 包、jstl标签库和一个用于打印日志的log包:

在web.xml中配置前端控制器

前端控制器相当于Spring MVC的专有servlet,用于拦截所有符合条件的请求,交由框架做后续处理

复制代码


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi\="http://www.w3.org/2001/XMLSchema-instance" xmlns\="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation\="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app\_3\_1.xsd" id\="WebApp\_ID" version\="3.1"\>

        

  <!-- 配置前端控制器-DispatchServlet \-->

  <servlet\>

  <servlet-name\>springMvcNext</servlet-name\>

  <servlet-class\>org.springframework.web.servlet.DispatcherServlet</servlet-class\>



  <!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" \-->

  <init-param\>

          <param-name\>contextConfigLocation</param-name\>

        <param-value\>classpath:applicationContext.xml</param-value\>

  </init-param\>

  </servlet\>

  

  <servlet-mapping\>

  <servlet-name\>springMvcNext</servlet-name\>

  <url-pattern\>/</url-pattern\> <!--根据url-pattern设定的规则拦截用户发来的请求 此处拦截所有请求,包括静态资源 ->

  </servlet-mapping\>

 

</web-app\>

复制代码

其中标签中定义url匹配规则为符合*.action的形式,对应的servlet名为springMvcNext,而配置的控制器为org.springframework.web.servlet.DispatchServlet,该控制器为当前SpringMVC项目的前端控制器,标签为当前控制器依赖的参数,两个参数分别代表上下文参数和参数加载路径。

关于classpath:代表web项目编译后编译后的输出路径

配置spring MVC配置

在java源代码更目录下添加applicationContext.xml文件

具体内容:

复制代码


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns\="http://www.springframework.org/schema/beans" xmlns:xsi\="http://www.w3.org/2001/XMLSchema-instance" xmlns:p\="http://www.springframework.org/schema/p" xmlns:context\="http://www.springframework.org/schema/context" xmlns:mvc\="http://www.springframework.org/schema/mvc" xsi:schemaLocation\="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd

        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"\>



    <!-- 包扫描器  标签将用于激活Spring MVC注释扫描功能,允许使用@Controller和@RequestMapping等注释。\-->

    <context:component-scan base-package\="com.sl.controller" />

    

    <!-- 注解驱动 \-->

    <mvc:annotation-driven />

    

    <!-- 配置视图解析器 \-->

    <bean class\="org.springframework.web.servlet.view.InternalResourceViewResolver" id\="internalResourceViewResolver"\>

        <property name\="prefix" value\="/WEB-INF/view/" />

        <property name\="suffix" value\=".jsp" />

    </bean\>

</beans\>

复制代码

添加控制器Controller与视图View

Kafka进阶篇知识点

image

Kafka高级篇知识点

image

44个Kafka知识点(基础+进阶+高级)解析如下

image

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

1630840246844)]

Kafka高级篇知识点

[外链图片转存中…(img-O8iZb684-1630840246845)]

44个Kafka知识点(基础+进阶+高级)解析如下

[外链图片转存中…(img-hxKtrsBN-1630840246845)]

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值