• 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 ================================

    到这里就简单配置完成了

  • 相关阅读:
    sql server紧急状态下登录脚本
    将SQL for xml path('')中转义的字符正常显示
    SQL查询表中的有那些索引
    Set ARITHABORT Option设置为ON
    检测重编译
    计划指南
    sql server 清理缓存
    变量绑定
    分析及动态采样
    Hint
  • 原文地址:https://www.cnblogs.com/cfb513142804/p/5595820.html
Copyright © 2020-2023  润新知