从大体上,springMVC的执行流程是两步骤
一、启动服务器
二、发送请求,后台处理请求
一:1、加载web.xml文件在web.xml中创建前端控制器对象
1的作用:
1、标记容器是否应该在web应用程序启动的时候就加载这个servlet,(实例化并调用其init()方法)
注意:
1、你必须要在里面写上整数,因为这是这个servlet的执行顺序数字**(值越小,servlet的优先级越高,就越先被加载)**
2、如果该元素的值为负数或者没有设置,则容器会当Servlet被请求时再加载。
3、值相同时,容器就会自己选择顺序来加载
的含义
1、它代表路径的匹配模式:
/代表匹配/开头的当不会匹配类似.jsp为后缀的
注意:
/*可以匹配任何类型
一:2、加载核心配置文件
核心配置文件的内容
1、
2、因为我是使用注解,所以我要开启包扫描,和springmvc的注解扫描
开启springmvc注解扫描之后,我就可以省略三个步骤:
1、配置处理器Handle ,映射到firstController类中
<bean name="/firstController" class="controller.FirstController"/>
2、映射器:将处理器的Handle的name作为url查找
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
3、适配器:配置处理器中handleRequest()方法的调用
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
作用:将我标注注解的controller类变成对象,加载到容器当中,且默认单例
3、视图解析器的配置
视图解析器的作用:
根据服务方法的返回值,自动的拼接最终的viewName数据
viewName= prefix + 服务方法返回值 + suffix
请求流程
1、发送请求
点击注册,请求就会发送到前端控制器,因为前端控制器是springmvc的核心,就像cpu一样
2、前端控制器dispatcher会将这个请求的路径解析,取出url,将其与controller下的@RequestMapping注解的path参数进行一一配对
如果配对成功,会执行该注解下的方法,下图返回的值会被视图解析器(我的案例)解析,也就是说会寻找解析器所配置的路径:/WEB-INF/pages/下的regist.jsp文件 ,prefix = /WEB-INF/pages/ ,suffix = .jsp
@RequestMapping的简单介绍:
这个注解会将 HTTP 请求映射到 MVC控制器的处理方法上去
作用:
用于建立请求URL和处理请求方法之间的对应关系
3、寻找到路径/WEB-INF/pages/regist.jsp后页面就会这样显示:
但网页的路径不会变成/WEB-INF/pages/regist.jsp而是:
控制台的输出:
我的案例文件所在位置:
文件内容: