• 面试题


    SpringMVC

    一.     简述SpringMVC

        SpringMVC是一个基于java实现MVC设计模式的轻量级框架,也是一个基于请求驱动的web框架。使用前端控制器实现视图层和控制层的参数传递。

    二.     SpringMVC的请求处理流程     

    1.           用户发送请求到前端控制器。
    2.           前端控制器根据xml、注解请求处理器映射器查找Handler
    3.           处理器映射器向前端控制器返回Handler
    4.           前端控制器用适配器去执行Handler
    5.           处理器适配器去执行Handler
    6.           Handler执行完成给适配器返回MondelAndView
    7.           处理器适配器向前端控制器返回MondelAndView
    8.           前端控制器请求视图解析器去进行视图解析,解析出真正的视图
    9.           视图解析器向前端控制器返回View
    10.           前端控制器将模型数据填充到视图进行渲染
    11.           前端控制器向用户响应结果

    三.     部分组件的作用

         DispatcherServlet:前端控制器

              DispatcherServlet是整个流程控制的中心,是springmvc中最核心的类,在web.xml中配置。降低了各个组件之间的耦合性

         HandlerMapper:处理器映射器

             根据用户请求url找到(Handler)处理器

        HandlerAdapter:适配器

            通过HandlerAdapter对处理器进行执行,这是适配器器模型的应用

        ModelAndView:视图与模型

            一般在Controller层作为结果类型返回,其内部view部分指定返回的页面,model指定返回的参数

    四.    SpringMVC优点

    •         灵活的配置功能
    •         提供了大量的控制器接口和实现类
    •         真正做到了与View层实现无关
    •         面向接口编程

    五.    注解方式

            若有多个请求时,需要配置多个映射关系,并建立多个Controller来进行多个处理。

             更改spring-mvc.xml基于注解的处理器

    1 <!--启用SpringMvc注解-->
    2     <mvc:annotation-driven/>
    3     <!--对web包中的所有类进行扫描,已完成Bean的创建和自动依赖注入的功能-->
    4     <context:component-scan base-package="cn.controller"/>
    5     <!--启动SpringMvc的注解功能,完成请求和注解pojo的映射-->
    6   

           cn包下controller类    cn.controller类中的各个注释

          @Controller:标注一个普通的JavaBean类成为可以处理请求的控制器

          @HandlerMapper:通过请求URL进行映射

    六.     视图解析器

            设置spring-mvc.xml视图解析器

    1 <!--视图解析器-->
    2     <bean class="org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver"/>
    3     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    4         <property name="prefix" value="/"></property>
    5         <property name="suffix" value=".jsp"></property>
    6     </bean>

    七.     参数传递     

    •        view to Controller   

                   在方法参数前加@RequestParam进行入参

        @RequestMapping("/hehe")
        public String a(){
            return "first";
        }
    •        Controller to view  

                    添加模型数据 

    @RequestMapping("/lala")
        public ModelAndView c(User u){
            System.out.println(u.getName()+"---"+u.getAge());
            ModelAndView mav=new ModelAndView();
            mav.addObject("name","李四");
            mav.setViewName("first");
            return mav;
        }
  • 相关阅读:
    ciancd开源
    Deployment Pipeline using Docker, Jenkins, Java
    Jenkins与.NET项目
    设置jenkins代理
    p4 是否能自动merge
    jenkins和docker 使用docker作为slave
    jenkins插件 build timeout和build timestamp
    jenkins 插件开发资料
    jenkins2 pipeline 语法快速参考
    jenkins2 pipeline插件的10个最佳实践
  • 原文地址:https://www.cnblogs.com/cy7533649/p/14819787.html
Copyright © 2020-2023  润新知