这是核心

图片说明
##BASIC

SpringMVC
    为什么要玩SpringMVC  
    哪些是springMVC的难点
    进大厂面试官会问些什么

    javaweb 前段发出的请求会被映射到xml中,让后再匹配到对应的servlet中,然后调用相应的servlet类种方法
    使用springmvc后所有的请求都交给springmvc进行管理,那么怎么管理呢 需要在webapp WEB-INF 中找到web.xml 配置核心控制器 dispatcherServlet(负责服务调度) 
    dispatcherServlet 配置
        <!--此标签指定了一个实现类为DispatcheServlet-->
        <web-app>
            <servlet>
                <servlet-name>dispatcherServlet</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <!--配置Servlet初始化参数,读取springmvc的配置文件,创建spring容器-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <!-- 配置servlet启动时加载对象-->
            <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
                <servlet-name>dispatcherServlet</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>
        </web-app>


    springMVC.xml 
        一般配置组件扫描器和视图解析器

    web.xml

    springMVC请求流程
        dispatcherServlet---前端控制器
            接收用户请求,以做出相应;同时调度其他组件用户请求,执行整个流程,是一个中央处理器;
        handlerMapping---处理映射器
            根据用户请求的 URL 路径,通过注解或者 XML 配置,寻找匹配的 Handler 即处理器
        handle---处理器(开发)
            这就是开发中要编写的具体业务逻辑控制器,执行相关的请求处理逻辑,并且返回相应的数据和视图信息,然后封装到 ModeAndView 对象中
        handleAdapter---处理适配器
            根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的 Handler (常称为 Controller)
        view resolver---视图解析器
            通过ModelAndView 对象中的 View 信息将逻辑视图名解析成物理视图名,即具体的页面地址,然后再生成 View 视图对象,最后对 View 进行渲染处理结果通过页面展示给用户
        view---视图(开发)
            本身是一个接口,实现类支持不同 View 类型 (JSP、FreeMarker、Excel 等)

    请求参数绑定
        1.基本类型和参数类型
            通过构建一个超链接的方式传递参数,例如 ?objectOne=One 而在后端中如果方法形参与这个objectOne是一致的,这个提交的数据就会被绑定到参数objectOne中
        2.JavaBean实体类
            参数中使用 JavaBean 类型接收时,在提交表单的时候,就需要将其中的 name 属性中的值与实体类中的成员变量的值是一样的,如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性例如:account.username
        3.集合数据类型

    响应数据以及视图结果
        返回字符串
        返回void值
        返回modleAndView对象 ----ModeAndView object = ModeAndView.newInstance;  object.setViewName("LoadViewName") return object;

    设置不拦截静态资源
        在springmvc.xml中配置<mvc.resource mapping="css/**/" location="/css/">

    发送Ajax请求
          $(function () {
            $("#btn").click(function () {
                //发送ajax请求
                $.ajax({
                    url:"user/testAjax",
                    contentType:"application/json;charset=UTF-8",
                    data:'{"username":"zhangsan","password":"888888"}',
                    dataType:"json",
                    type:"post",
                    success:function (data) {
                        //解析响应数据
                    }
                })
            });
        });

    响应json格式数据

ANNOTATION--ACCESSABLE

springMVC
    @RequestMapping
        说明:注解是指定控制器可以处理哪些URL请求,这个注解可以放在类或者方法上
        属性:path value method params Headle

    @RequestParam(value="",required=false,default="") 
        说明:把请求中的指定名称的参数传递给控制器中的形参
        @RequestParam(value="nickName") value中的nickName与前端需要传递的nickName属性相对应 并把nickName = 值 传递到name中 使得name值为前端传递的值

    @RequestBody
        作用:用于获取请求体的内容(注:get方法不可以)
        当调用此方法,其内含有的数据都被其接收。一般使用json格式做为数据传递格式

    @PathVariable
        作用:用于绑定url中的占位符,例如:url中有/test/{id},{id}就是占位符

    @SessionAttribute
        作用:用于多次执行控制器方法间的参数共享