1.什么是spring mvc?

   在了解spring mvc之前先了解一下什么是mvc?

    答:mvc是一种设计模式,分为三层,模型层(m)、视图层(v)、控制层(c)

  控制层(controller):客户端向发起request请求,控制层接收,然后想模型层发起请求处理.

  模型层(model):进行请求的处理,包括service、dao、pojo等,然后将处理结果返回给控制层

  视图层(view):进行视图解析,并渲染然后填充到request域,返回到控制层

  重复实现了松耦合,实现了解耦。

spring mvc是spring框架的一部分,它和spring框架无须中间层的过度,是基于mvc的一类框架。

2.spring mvc的原理?

 客户端发送request请求(url),前段控制器接收请求,然后根据url去查找handler,但是它不知道去查找哪个handler,但是有人知道,谁知道呢?这时候handler映射器上场了,它知道去查找哪个handler,于是,前端控制器就根据url向handler映射器发送查找handler的请求,这个时候,handler映射器按理来说就会返回查找的handler,但是这里handler映射器会返回一个执行链,这个执行链当中有N多个拦截器和handler。返回给handler给前端控制器,这个时候要去 执行handler,但是谁去执行呢?又上场一个人 叫handler适配器,于是乎,前段控制器向handler适配器发送请求执行handler,那handler适配器就去根据特定的规则,去执行handler处理器(controller),然后返回给处理器适配器一个modelandview对象,处理器适配器将modelAndView对象返回给前端控制器,前端控制器向视图解析器发送请求视图解析的请求,然后它返回一个物理视图给前端控制器,前端控制器将这个物理视图交由试图进行渲染并填充到request域当中,然后响应页面。

3.spring mvc的配置

1必须注意的东西:项目中最好是在和src同级目录下建立一个config文件夹,里边可以根据不同的框架的配置文件设立不同的文件夹,里边放置相应的配置文件。例如spring mvc框架 就将spring-mvc.xml文件放在里边。这样便于统一管理框架的配置文件。

2.在eclipse工具当中建立项目的时候,会看到build/classess这个路径,最好改成/WEB-ROOT/WEB-INF/Classes ,因为改成这样的路径,项目可以导入到myeclipse工具当中。

 3.项目是在tomcat里边运行的,最终运行的视乎也是在tomcat里边,所以整个项目的文件夹在tomcat的安装路径下的webapps里边

   设计两个配置文件:web.xml,spring-mvc.xml

  在web.xml当中配置前端控制器

 springmvc框架介绍

在spring-mvc.xml当配置处理器映射器、处理器适配器和试图解析器

 首先:非注解的配置:有2种方法

          <!-- 配置处理器-->

             <bean id="handler的id值1" class="自己写的controller的路径">

        <!-- 配置处理器映射器第一种方式-->

                 <bean  class="org.springframwork.web.servlet.handler.BeanNameUrlHandlerMapping"/> 

        <!-- 配置处理器映射器第一种方式-->

                 <bean class="org.springframwork.web.servlet.handler.SimpleUrlHandlerMapping">

                            <property  name="mapping">

                                       <prop  key="访问的url1" >handler的id值1</props>

                                       <prop  key="访问的url2" >handler的id值2</props>

                             </property>

                   </bean>

 <!-- 配置处理器适配器第一种方式-->

                 <bean  class="org.springframwork.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 

 <!-- 配置处理器适配器第二种方式-->

                 <bean class="org.springmvcframwork.web.servlet.mvc.HttpRequestHandlerAdapter"/>


第一种配置方式:controller的写法1

实现controller接口,springmvc框架介绍


第二种配置方式:controller的写法2

实现HttpRequestHandler接口  springmvc框架介绍


配置试图解析器:

    springmvc框架介绍                                 注意:   在视图解析器配置前缀和后缀之后:转发的视图的地址可以简写为:

         modelAndView.setViewName("/items/itemList")

        request.getRequestDispatcher("/items/itemList")


注解的配置方式:注解也有2种方式

说明:注解开发不需要实现其他的接口,

        第一种:  

     在spring-mvc配置文件当中配置bean

<!-- 配置处理器适配器-->

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

<!-- 配置处理器映射器-->

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

           第二种:

   <mvc-annotation-driven></mvc-annotation-driven>     //注解驱动   代替了上边的两种配置

 在controller当中 在controller类上加@controller("/xxxx") 标识它是一个控制器,

在方法上加@RequestMapping("/list")对该方法使用url映射。一个方法对应一个url,一般情况下,和方法名一致,主要原因是便于后期维护

对于一个注解的handler(controller),可以进行单个配置 <bean class="controller的路径">,但是实际开发过程中存在多个handler,这时候明显不能一一的去配置,于是就有了包扫描组件

<context:component-scan   base-package="包路径"></context:component-scan>


                                                         

相关文章:

  • 2021-05-01
  • 2022-01-20
  • 2022-02-25
  • 2021-08-31
  • 2021-05-23
  • 2021-10-13
  • 2021-11-23
  • 2022-02-28
猜你喜欢
  • 2021-05-22
  • 2021-11-23
  • 2021-10-27
  • 2021-06-03
相关资源
相似解决方案