其他分享
首页 > 其他分享> > Spring MVC 狂神说自学笔记(helloMVC篇)

Spring MVC 狂神说自学笔记(helloMVC篇)

作者:互联网

0.重点理解

spring  :IOC和aop

springMVC  :他的执行流程要搞懂

回顾:什么是mvc:模型(model) 视图(view) 控制器(controller)

课外:推荐看的书:《淘宝的十年革命》

———————————————————————————————————————————

1.springMVC的执行原理

自我理解:

第一步:用户发起请求的时候会经过一个前端控制器(DispatcherServlet)

第二步(2,3,4):前端控制器会根据这个请求找到映射器(HandlerMapping),然后把这个映射器返回给DispatcherServlet

第三步(5~8):根据映射器 去 适配(适配器:HandlerAdapter) 这个映射器,适配到的映射器就是一个Controller(控制器), 然后会执行一个具体的Controller ,执行完了之后会返回一个ModelAndView

第四步 (9,10):通过ModelAndView去配置具体的 视图解析器(ViewResolver) ,然后ViewResolver在返回给DispatcherServlet

第五步:DispatcherServlet 把ViewResolver的数据交给 View 进行展示 然后结束。

———————————————————————————————————————————

2.练习过程

第一步:把框架搭好  把可避免的错误都避免

第二步: 配置前端控制器(DispatcherServlet)     web.xml

<servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--说明context是在哪-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--运行级别    1  就是和服务器一起运行-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <!--
        这里要明白 /和/* 的区别
        / :  就是不会吧jsp文件访问
        /*: 会吧jsp访问    如果访问了哪就会在后面多一个.jsp
        -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

第三步:配置环境      (映射器,适配器,视图解析器) 他其实就是一个spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">


</beans>

springMVC的运行环境

     <!--处理器映射器-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <!--处理器适配器-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--因为我们是使用的BeanNameUrl 的处理器  所以就要配置一个这个-->
    <bean id="/hehe" class="com.kuang.controller.SpringController"/>

第四步:编写Controller 

public class SpringController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("hello");
        mv.addObject("msg","HelloSpringMVC");
        return mv;
    }
}

可能发生的错误:404  找不到页面  大概是lib没有jar包 。还有的就是bean没有实例化,应该就是你pom.xml 里的环境有问题(我是这样解决的)

3.需要记忆的单词

*前端控制器:DispatcherServlet

*处理器映射器:HandlerMapping

*处理器适配器:HandlerAdapter

*视图解析器:ViewResolver

*控制器:Controller

*上下文配置位置:context Config Location

视图:view

模型:model

*前缀:prefix

*后缀:suffix

属性:property

在启动时加载:load on startup

初始化:init param

模式:pattern

映射:mapping

标签:helloMVC,控制器,映射器,Spring,视图,Controller,MVC,ModelAndView,DispatcherServlet
来源: https://blog.csdn.net/flight___/article/details/123076524