spring mvc超实用介绍(很适合初学者)

 Springmvc框架

一、介绍Springmvc

   1.介绍框架的设计原理和功能

      springmvc -- spring全家桶中的一员!专门负责mvc的c框架!

      springmvc 和 spring 和 mybatis  ssm!


      回顾mvc:

          mvc设计模式



      springmvc既然负责的controller!它简化controller层的操作!

         核心功能: 1.简化获取请求参数
                    2.简化相应的数据(json/转发/重定向)


   2.组成部分

       1.核心处理器 DispatcherServlet (Servlet) 

             /

            负责接受请求!调用其他的组件完成本次相应,最终由它把相应给到前端!

       2.处理器映射器 RequestMapping 

             内部读取了当前项目controller以及他们对应的路径!

             DispatcherServlet先找到requestmapping,它根据路径找到对应的contoller!返回给核心控制器!

       3.处理Handler


             handler就是contoller称呼!controller不用在继承httpservlet!

             直接就是一个普通的类!直接通过特殊的方式指定一个对应的路径就可以!

             DispatcherServlet接受请求参数!通过mapping查找,adapter适配 反射调用的!


       4.处理器适配器 RequestAdapter 

             它出现的位置在核心处理器和handler之间!他是具体帮助我们简化获取参数的还有相应json数据中间件!

       5.视图解析器 ViewResolver

              当我们转发或者重定向到当前项目的页面的时候!视图解析器帮助我们找到完成的视图路径,并解析交给
              DispatcherServlet,再进行返回!

              拼接完整路径转发到对应的资源!

              json 视图解析器没用!


              handler(){

                return "index";
              }


               ViewResolver

                   前缀从/WEB-INF/html/

                   后缀  .html



              webapps



                 web-inf

                    html  
                        index.html
                        xx.html

                      页面 HTML/JSP
                        
                      外部无法访问!

                      内部可以转发

   3.框架的实现步骤(执行流程)

       一次请求的执行流程!

二、Springmvc框架的初体验

    步骤1: 

        spring    ioc di 


        spring mvc  


        servlet 

               servlet-api
               jsp-api

    步骤2:

         1.声明核心处理器DispatcherServlet

            <servlet>
                <servlet-name>dispatcherServlet</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
            </servlet>
                    
            <!--                
               共同点: 都拦截!    
               / 不处理 jsp的请求
               /* 所有都处理
             -->
            <servlet-mapping>
                <servlet-name>dispatcherServlet</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>


        2.把其他核心组件进行ioc操作 

            dispatcherServlet只会找 ioc容器的核心组件对象!

            handler --> controller 

            <context:compnent-scan  base-package="com.itqf.contoller"


            处理器映射器 
            处理器适配器
            视图解析器

               <!-- controller handler -->
               <context:component-scan base-package="com.itqf.controller" />

               <!-- 处理器映射器 处理器适配器  视图解析器 -->
               <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

               <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

               <!-- user -->
               <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <property name="prefix"  value="/WEB-INF/view/" />
                    <property name="suffix" value=".jsp" />
               </bean>



        3.编写handler controller


            任何类都可以成为Controller

            1.类必须被ioc管理

            2.处理器适配器中进行注册

               @RequestMapping(路径)

               类和方法

               类和方法都添加了!
               

               访问方法的路径: 类的/方法的路径!


        4.加载配置文件 初始化webapplicationcontext容器

            利用的dispactherservlet init方法!

            不是固定的命名,需要告知加载的配文件!


            <servlet>

               <init-param>  --> init ServletConfig 

                   <param-name>contextConfigLocation
                   <param-value>classpath:配置文件的名称,配置文件的名字


            <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:applicationContext-web.xml</param-value>
                </init-param>

                <load-on-startup>1</load-on-startup>
            </servlet>

三、SpringMVC框架的常用注解

        1.@RequestMapping()

          位置:类/方法

          含义:配置用户访问路径! 处理器映射器中进行注册!


          @RequestMapping("user") /  @RequestMapping(value="user")


          实验结果:

                  类选择性添加!一般情况类上添加用于区分功能模块 /user /product /car 
                  方法必须添加!但是可以路径不写! 路径不写代表默认!


            内部属性:

                 value 访问路径 配置多个路径  value = {"","",""}  / value = ""

                 path 访问路径 配置多个路径  path = {"","",""}  / path = ""

                 method 指定请求方式 method = {RequestMethod.POST,RequestMethod.GET}

                 produces  指定返回数据的类型和编码格式 防止乱码  produces = "json/application;charset=utf-8


       2.@请求方式Mapping

           @PostMapping("logout") == @RequestMapping(value = "logout",method = RequestMethod.POST)


       3.@ResponseBody

           想直接返回字符的时候或者返回json的时候!

        4.介绍下方法的语法

            public void/String/自定义类型  方法名(形参){



               return "";
            }


            void:没有任何返回,需要你自己response自己写返回!下载!

            string:
                    1.如果有@ResponseBody返回一个字符串
                    2.转发  默认
                    3.重定向


                     return  "redirect:/mvc/user/logout";
                     return "user";  //转发
                     return "forward:/user";

            自定义类型:

                    Student / User 后期会转成json!


            形参:可以接受请求参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值