1、客户端点击链接会发送http://localhost:8080/SpringMVC_1_helloWord/hello 请求
    2、来到tomcat服务器
    3、SpringMVC的前端控制器收到所有请求
    4、看请求地址和和@RequestMapping注解哪个匹配,来找到到底使用那个类的哪个方法来处理请求
    5、前端控制器找到了目标处理器类和目标方法,直接利用反射执行目标方法
    6、目标方法执行完成以后会有一个返回值,SpringMVC认为这返回值,就是要去的页面地址
    7、拿到方法返回值后;用视图解析器进行拼串得到完整的页面地址
    8、拿到页面地址后,前端控制器帮我们请求转发到页面

    • 开发中大家需要注意的问题,总结如下:

    ① HelloWorld请求流程图解:
    image.png

    ② 一般请求的映射路径名称和处理请求的方法名称最好一致(实质上方法名称任意)

    1. @RequestMapping(value="/helloworld",method=RequestMethod.GET)
    2. public String helloworld(){ //方法名和映射名最好一致!!!
    3. //public String abc123(){
    4. System.out.println("hello,world");
    5. return "success";
    6. }

    ④处理请求方式有哪几种

    1. @RequestMapping(value="/helloworld",method=RequestMethod.XXX)
    1. public enum RequestMethod {//重点注意:GET、POST
    2. GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
    3. }

    ⑤@RequestMapping可以应用在什么地方

    1. @Target({ElementType.METHOD, ElementType.TYPE})
    2. @Retention(RetentionPolicy.RUNTIME)
    3. @Documented
    4. @Mapping
    5. public @interface RequestMapping {…}

    ⑦url-pattern中的/和/的区别
    /
    和/都是拦截所有请求;

    /:会拦截所有请求,但是不会拦截 .jsp;保证jsp访问正常;
    /
    :的范围更大;会拦截 * .jsp;一旦拦截jsp页面就不能正常显示

    1. <servlet-mapping>
    2. <servlet-name>dispatcherServlet</servlet-name>
    3. <url-pattern>/</url-pattern>
    4. </servlet-mapping>

    流程图分析:
    image.png

    基本步骤:
    客户端请求提交到DispatcherServlet

    由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller

    DispatcherServlet将请求提交到Controller(也称为Handler)

    Controller调用业务逻辑处理后,返回ModelAndView

    DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图

    视图负责将结果显示到客户端