• SpringMVC -- 梗概--源码--贰--静态资源的访问问题


    配置:<mvc:default-servlet-handler/>
    1>静态资源:除了Servlet、Controller之外的资源,如:js,css,png,html等
    2>当请求静态资源:...xx/xx/xx.js,...xx/xx/xx.css,...xx/xx/xx.png等
     如上请求会逐步回溯到【/】,即会进入DispatcherServlet,则会有HanderMapping
     取查找Hanler,自然无法找到。此时如果没有如上配置,则404.
    3>如果有如上配置,则在项目中会自动注册【/**】的一个handler,且此handler
      会在最后映射请求,如果是项目中存在指定的静态资源,则会转向静态资源。


    XML :
    <?xml version="1.0" encoding="utf-8"?>
    <!-- xmlns:xml name space 是每一个schema唯一标识 -->
    <beans xmlns="http://www.springframework.org/schema/beans" 
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                                  http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                                  http://www.springframework.org/schema/context
                                  http://www.springframework.org/schema/context/spring-context-3.2.xsd
                                  http://www.springframework.org/schema/mvc
                                  http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    
        <!-- 扫描所有控制器中的注解 -->
        <context:component-scan base-package="com.c61.controller"></context:component-scan>
        <!-- 
            MVC中基于注解开发,导入注解驱动
            <mvc:annotation-driven/>
         -->
        <mvc:annotation-driven>
            <mvc:message-converters>
                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <!-- 支持的格式:application/json -->
                            <value>application/json</value>
                        </list>
                    </property>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
        <!-- 视图解析器:解析视图
             控制器方法的返回值,会被视图解析器捕获。"abc"
             根据捕获的内容,解析出一个视图地址:/abc.jsp
         -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
        <!-- 
            静态资源:html,js,css,jpg
            访问404 解决
         -->
         <mvc:default-servlet-handler/>
         
         <!-- 声明异常处理器 -->
         <bean class="com.c61.ex.resolver.MyExceptionResolver"></bean>
         
         <!-- 拦截器配置 -->
         <!-- 
             /a/b
             inter1
             inter2
             拦截顺序:先配置先拦截
             具体顺序:pre1==pre2==contorller==post2==post1==after2==after1
          -->
         <mvc:interceptors>
             <mvc:interceptor>
                 <!-- 定义要拦截的路径 
                      /inter/*  匹配   /inter/a   /inter/b    inter/cssdafasfsafs
                                                      不能匹配/inter/a/b
                     /inter/** 匹配 /inter/a  /inter/xxsjaflsajf   /inter/a/b/c/e/d/xxxcvx
                     *注意:exclude-mapping不能单独使用。要配合mapping使用
                                 :在mapping匹配的范围中排除一些个。
                 -->
                 <mvc:mapping path="/inter/**"/>
                 <mvc:mapping path="/a/b"/>
                 <mvc:mapping path="/c/**"/>
                 <mvc:exclude-mapping path="/inter/test/*"/>
                 <mvc:exclude-mapping path="/c/b/**"/>
                 <!-- 声明拦截器 -->
                 <bean class="com.c61.interceptor.MyInterceptor"/>
             </mvc:interceptor>
             <mvc:interceptor>
                 <!-- 定义要拦截的路径 -->
                 <mvc:mapping path="/inter/test"/>
                 <!-- 声明拦截器 -->
                 <bean class="com.c61.interceptor.MyInterceptor2"/>
             </mvc:interceptor>
         </mvc:interceptors>
         <!-- 声明文件上传解析器 
               注意:此解析器,id必须为:multipartResolver
         -->
         <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
             <!-- 最大允许的上传大小    byte -->
             <property name="MaxUploadSize" value="2097152"></property>
         </bean>
         <!-- 
             注册,验证码生成器
          -->
          <bean id="captcha" class="com.google.code.kaptcha.servlet.KaptchaExtend">
            <constructor-arg>
                <props>  
                    <!-- 是否有边框 边框颜色 边框粗细 -->
                    <prop key="kaptcha.border">no</prop>  
                    <prop key="kaptcha.border.color">105,179,90</prop>  
                    <prop key="kaptcha.border.thickness">20</prop>
                    <prop key="kaptcha.textproducer.font.color">black</prop>  
                    <prop key="kaptcha.image.width">200</prop>  
                    <prop key="kaptcha.image.height">50</prop>  
                    <prop key="kaptcha.textproducer.font.size">40</prop>  
                    <prop key="kaptcha.session.key">code61</prop>  
                    <prop key="kaptcha.textproducer.char.length">4</prop>  
                    <prop key="kaptcha.textproducer.font.names">Arial,Courier</prop> 
                  <!--   <prop key="kaptcha.background.clear.from">black</prop> 
                    <prop key="kaptcha.background.clear.to">255,0,0</prop>  -->
                </props>  
            </constructor-arg>
        </bean>
    </beans>

    啦啦啦

  • 相关阅读:
    HDU 2095 find your present (2) (异或)
    UESTC 486 Good Morning (水题+坑!)
    UVa 111 History Grading (简单DP,LIS或LCS)
    UVa 11292 Dragon of Loowater (水题,排序)
    HDU 1503 Advanced Fruits (LCS+DP+递归)
    UVa 10881 Piotr's Ants (等价变换)
    UVa 11178 Morley's Theorem (几何问题)
    HDU 1285 确定比赛名次(拓扑排序)
    .net Core的例子
    TCP与UDP的区别
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/6714507.html
Copyright © 2020-2023  润新知