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

到这里就简单配置完成了

时间: 2024-09-29 18:25:36

springMVC-配置的相关文章

SpringMVC配置实例

一.SpringMVC概述 MVCII模式实现的框架技术 Model--业务模型(Biz,Dao...) View--jsp及相关的jquery框架技术(easyui) Contraller--DispatcherServlet以及控制器组件 二.控制器组件 1).DispatherServlet 2).xxx-servlet.xml文件 3).转向模型ModelAndView类 4).相应的Aop组件和拦截器组件 三.springMvc的开发步骤 1.在当前工程引入spring组件包 2.编写

SpringMVC 配置UEditor

SpringMVC 配置UEditor,把UEditor 下的jsp 文件夹放到项目中放jsp页面的目录下,在Controller中中写一个方法(如:@RequestMapping(value="/load/img")访问jsp页面(就跟访问一般的jsp页面一样),需要注意的是,jsp文件夹下的jsp文件和js文件必须放到一起.再把UEditor的后台配置中 URL 中的jsp/controller.jsp改为Controller中的方法的访问URL,就是上面所说的/YourContr

SpringMVC 配置多视图解析器(velocity,jsp)

1.自定义视图解析器 package com.zhaochao.controller; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework

SpringMVC配置web.xml文件详解(列举常用的配置)

常用的web.xml的配置 1.Spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在web.xml配置监听器ContextLoaderListener(listener-class) ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默

springmvc 配置过程及详解

加入jar包 在web.xml中 添加spring监听器 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 添加spring容器(父容器)配置文件: <context-param> <param-name>contextConfigLocation</param

springmvc配置之mvc:annotation-driven

为了简化springmvc配置,spring同时引入了mvc namespace, 配置了 <mvc:annotation-driven/> spring会默认注册a RequestMappingHandlerMapping, a RequestMappingHandlerAdapter, and an ExceptionHandlerExceptionResolver 三个bean, 来支持使用注解(@RequestMapping.@ExceptionHandler.@Controller等

Spring实战第七章————SpringMVC配置的替代方案

SpringMVC配置的替代方案 自定义DispatherServlet配置 我们之前在SpittrWebAppInitializer所编写的三个方法仅仅是必须要重载的abstract方法.但还有更多的方法可以进行重载,从而实现额外的配置. 例如customizeRegistration().在AbstractAnnotationConfigDispatcherServletInitializer将DispatcherServlet主车道Servlet容器后,就会调用该方法,并将Servlet注

springMVC配置jsp/html视图解析器

目录 1.maven项目引入freemark相关jar包 2.freemarker.properties 3.配置视图解析器 参考自springMVC配置jsp.html多视图解析器,本文稍作补充 1.maven项目引入freemark相关jar包 freemaker是以个模板引擎,可以根据提供的数据和创建好的模板,去自动的创建html静态页面.所以在返回html视图时可以用这个引擎结合数据生成html静态页面. <dependency> <groupId>org.springfr

FreeMarker学习(springmvc配置)

springMvc配置 <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/templates/"/> <property name=&

详解Springboot中自定义SpringMVC配置

详解Springboot中自定义SpringMVC配置 WebMvcConfigurer接口 ? 这个接口可以自定义拦截器,例如跨域设置.类型转化器等等.可以说此接口为开发者提前想到了很多拦截层面的需求,方便开发者自由选择使用.由于Spring5.0废弃了WebMvcConfigurerAdapter,所以WebMvcConfigurer继承了WebMvcConfigurerAdapter大部分内容. WebMvcConfigurer接口中的方法 举例1:configurePathMatch配置