【SSM_05】SpringMVC-配置

2021-02-04 10:04:44 浏览数 (1)

一、SpringMVC 执行流程

1. 流程图
2. 文字描述
代码语言:javascript复制
① 浏览器发送请求到服务器,DispatcherServlet(前端核心控制器) 匹配所有请求
② DispatcherServlet 将 url 发送给 HandleMapping(处理器映射器)
③ HandleMapping 查找是否有符合该路径的方法,有则将方法全限定名返回给 DispatcherServlet,没有则报 404
④ DispatcherServlet 拿到 HandleMapping 返回的全限定名,将其交给 HandleAdapater(处理器适匹配器)
⑤ HandleAdpater 拿到全限定名后执行方法
⑥ 方法返回 视图名称,HandleAdpater 将其返回给 DispatcherServlet
⑦ DispatcherSerclet 拿到 视图名称 后,将其交给 ViewResolver(视图解析器) 
⑧ ViewResolver 拿到 视图名称 查找是否有匹配的资源
⑨ 有则将 视图 返回给 DispatcherServlet
⑩ DispatcherServlet 拿到 视图 后,将其交给 View 渲染,填充数据后,DispatcherServlet 将 视图 响应给浏览器

二、springMVC组件

1. 前端控制器
代码语言:javascript复制
- DispatcherServlet
    整个流程控制的核心,调用其他组件处理用户的请求,降低了组件之间的耦合性
2. 三大组件
代码语言:javascript复制
- HandleMapping
    根据用户请求找到 Handle
- HandleAdpater
    执行 Handle
- ViewResolver
    将结果处理成 View
3. 其他组件
代码语言:javascript复制
- Handle 【自己写的controller层】
    业务逻辑
- View    【JSP、HTML】
    渲染 View

三、spring的注解以及配置

1. 配置监听 web.xml
代码语言:javascript复制
<!-- 配置全局参数 applicationContext 配置文件 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<!-- 配置监听 -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2. 配置 spring-mvc.xml
代码语言:javascript复制
<!-- 开启组件扫描 -->
<context:component-scan base-package="com.softwareMan.controller" />

<!-- 配置视图解析器前后缀 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=".jsp"/>
</bean>
3. 配置前端核心控制器
代码语言:javascript复制
<!-- 配置前端核心控制器 -->
<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:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
4. 注解
代码语言:javascript复制
① RequestMapping
- 属性
    * value:用于指定请求的URL。它和path属性的作用是一样的
    * method:用于指定请求的方式
    * params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样
    * headers : 指定限制请求的请求头信息!
-  @RequestMapping(value = "/find",method = RequestMethod.GET,params = "name",headers = "请求头")
5. 参数封装
代码语言:javascript复制
- 在方法上添加参数列表,变量名一致或自动封装
    method(String str,int i)
    method(User user)

0 人点赞