• springMVC学习笔记二(dispatcherServlet)


    =========================dispatcherServlet============================
    中文乱码解决方案(web.xml)
    <!-- 解决中文乱码问题 -->
    <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>




    配置dispatcherServlet前置控制器是第一步
    其主要任务:
    1 如果请求类型为multipart通过multipartResolver进行文件上传解析
    2 通过handlerMapping将请求映射到处理器
    3 通过handlerAdapter适配多种处理器
    4 通过viewResolver解析视图
    5 本地化解析
    6 渲染具体的视图
    7 通过handlerExceptionResolver来解析异常






    web.xml中配置,依据规则分发到目标controller(类action)


    示例代码如下:<!-- 配置DispatcherServlet -->
    <!-- 方式一 -->
    <servlet>
    <!-- 名称,有自已的webApplicationContext -->
    <servlet-name>example</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 拦载*.form请求 -->
    <servlet-mapping>
    <servlet-name>example</servlet-name>
    <url-pattern>*.form</url-pattern>
    </servlet-mapping>




    <!-- 方式二 -->
    <!-- 使用springMVC.xml配置文件 -->
    <servlet>
    <!-- 名称,有自已的webApplicationContext -->
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <!-- 1 不写,/WEB-INF/<servlet-name>-servlet.xml 2 <param-value>/WEB-INF/classes/springMVC.xml</param-value> 
    3、<param-value>classpath*:springMVC-mvc.xml</param-value> 4、多个值用逗号分隔 -->
    <param-value>classpath*:/springMVC.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 拦载*.form请求 -->
    <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>


    dispatcherServlet也可以配置自已的初始化参数
    contextClass :实现webApplicationContext接口,用它来创建上下文,如果没有指定
                  默认使用xmlWebApplicationContext
    contextConfigLocation :指定上下文的位置,多个用逗号分隔
    nameSpace:




    <servlet> 
      <servlet-name>springMVC</servlet-name> 
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
      <load-on-startup>1</load-on-startup> 
      <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>classpath:springMVC-servlet.xml</param-value> 
      </init-param> 
     </servlet> 
    如果指定初始化参数,默认 DispatcherServlet不会从 WEB-INF/[DispatcherServlet 的 Servlet 名 字]-servlet.xml加载 配 置 文 件,而是从指定目录




    <!--初始化通用上下文,即加载的bean是整个应用共享-->
    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener>
    <!--dispapcherServlet初始化springMVC上下文,即加载的bean只对springMVC有效-->








    dispatcherServlet中用到的bean:
    1 controller 页面控制器
    2 handlerMapping: 请求到处理器的映射,返回一个 HandlerExecutionChain 对象(包 含一个 Handler处理器(页面控制器)对象、多个 HandlerInterceptor 拦截器)对象
    3 handlerAdapter:将处理器(控制器)转化为适配器,从而支持多种类型的处理器
    4 viewResolver:将逻辑视图名解析为具体的view
    5 localResover:本地化解析
    6 themeResovler:主题解析,类似于皮肤效果
    7 multipartResolver:文件上传解析
    8 handlerExceptionResolver:处理器异常解析
    9 requestToViewNameTranslator:如果处理器没有返回逻辑视图名,它会自动将请求url映射为逻辑视图名

    10 flashMapManager:存储一个请求的输出,作为另一个请求的输入,用于重定向


    参考:http://jinnianshilongnian.iteye.com/blog/1752171 

  • 相关阅读:
    Linux基础命令(一)
    You've made choice
    protege推理
    字符编码
    第二次作业
    数据类型-集合set
    数据类型-元组&字典
    数据类型-列表
    数据类型-数值&字符串
    流程控制之for循环
  • 原文地址:https://www.cnblogs.com/retacn-yue/p/6194266.html
Copyright © 2020-2023  润新知