springMVC-配置

Posted 海蜃天波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC-配置相关的知识,希望对你有一定的参考价值。

复习一下springmvc,以前看的时候只想着会用就行,但是时间久了记忆也就模糊了,今天简单整理一下,方便后期在复习

 

SpringMvc,

1、前端控制器

2、处理器映射器

3、处理器适配器

4、试图解析器

springMVc就是靠这4个器进行工作的。

怎么工作呢?

前端控制器将url传到处理器映射器,处理器映射器去寻找映射了url的Handler中的对应方法,这些Handler 要符合适配器的编写规则,最终 返回的结果由试图解析器渲染页面

前端控制器:【web.xml 中】

<!-- 加载Spring容器 -->
  <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/classes/*.xml</param-value>
  </context-param>
  <!-- Spring监听 -->
  <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- 配置前端控制器/适配器 -->
  <servlet>
          <servlet-name>springmvc</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器/适配器等..) -->
          <!-- 如果不配置,则默认加载‘WEB-INF/servlet名-servlet.xml‘(springmvc-servlet.xml) -->
          <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:springmvc.xml</param-value>
          </init-param>
  </servlet>
  <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <!-- 
          第一种:*.action,访问以.action结尾由DispatcherServlet进行解析
          第二种:/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析
                  使用此方法可是实现RESTful风格的url 
          第三种:/*,这样配置不对,使用这种配置,最终要转发一个jsp时,该jsp还是由DispatcherServlet进行解析,但不能根据jsp找到一个handler,所以会报错
           -->
          <url-pattern>*.action</url-pattern>
  </servlet-mapping>

 

【与src同级目录下创建的文件夹下的springmvc.xml(自定义,规则看web.xml )】

处理器映射器

  <!-- 处理器映射器 
        将bean的name作为url进行查找,需要在配置Handler时指定beanname(就是url)
    -->
    <bean
        class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    
    <!-- 配置Handler 
        映射器是将bean的name作为url进行查找的,所以要配置Handler的name属性
    -->
    <!-- <bean name="/queryItems.action" class="com.cfb.mees.controller.ItemsController"/> -->
    <bean id="ItemsController1" name="/queryItems.action" class="com.cfb.mees.controller.ItemsController"/>
    <!-- 配置另一个Handler -->
    <bean id="ItemsController2" class="com.cfb.mees.controller.ItemsController2"/>

<!--简单url映射 --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/queryItems1.action">ItemsController1</prop> <prop key="/queryItems2.action">ItemsController1</prop> <prop key="/queryItems3.action">ItemsController2</prop> </props> </property> </bean>
<!--注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

 

处理器适配器

  <!-- 处理器适配器 
        前端控制器要解析符合适配器规则编写的Handler
        所有处理器适配器都实现 HandlerAdapter 接口
    -->
    <bean        
        class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!-- 另一种适配器 -->
    <bean 
        class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>


  <!--注解适配器 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

 

配置Handler 

  <bean name="/queryItems.action" class="com.cfb.mees.controller.ItemsController"/>


    <bean id="ItemsController1" name="/queryItems.action" class="com.cfb.mees.controller.ItemsController"/>


    <!-- 配置另一个Handler -->
    <bean id="ItemsController2" class="com.cfb.mees.controller.ItemsController2"/>

 

Handler 很多的时候,单个配置相当麻烦,开发过程中当然使用最简单的自动扫描 

  <!-- 
        注解开发的Handler也可以单个配置
        开发中,方便起见,使用扫描器扫描Handler所在的包
     -->
    <context:component-scan base-package="com.cfb.mees.controller"></context:component-scan>

 

开发过程中当然使用注解开发,,使用注解驱动

  <!-- 注解驱动 
        使用 mvc:annotation-driven 可以代替单独配置注解映射器/注解适配器;
        mvc:annotation-driven :默认加载了很多参数绑定的方法,比如:json转换解析器
    -->
    <mvc:annotation-driven>
    
    </mvc:annotation-driven>

 

视图解析器

  <!-- 视图解析器 
        解析jsp视图,默认使用jstl标签,所以classpath下要引jstl的包
        prefix : 前缀
        suffix : 后缀
    -->
    <bean 
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

 

=================================end ================================

到这里就简单配置完成了

 

以上是关于springMVC-配置的主要内容,如果未能解决你的问题,请参考以下文章

spring 国际化 js怎么设置

Spring MVC 教程

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

springmvc 分页查询的简单实现