springmvc中dispatcherservlet与拦截器

dispatcherservlet常见配置
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-*-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
 </servlet-mapping>

<url-pattern>/</url-pattern>时,默认就是拦截所有路径
连静态资源也不能访问
但是,controller中配置@RequestMapping的路径是不会被拦截的,配置了@RequestMapping就相当于在web.xml中注册了<servlet>

那么此时如果需要做类似登录拦截的操作,就必须自定义拦截器,如:
    <interceptors>
        <interceptor>
            <mapping path="/cus/*" />
            <beans:bean class="com.water.it.yqb.backend.interceptor.LoginInterceptor">
            </beans:bean>
        </interceptor>
        <interceptor>
            <mapping path="/cus/*/*" />
            <beans:bean class="com.water.it.yqb.backend.interceptor.LoginInterceptor">
            </beans:bean>
        </interceptor>
        <interceptor>
            <mapping path="/biz/*" />
            <beans:bean class="com.water.it.yqb.backend.interceptor.LoginInterceptor">
            </beans:bean>
        </interceptor>
    </interceptors>

这样,凡是cus和biz开头的路径都会被拦截

注意:登录页面不要以cus或biz开头,否则连登录页都无法访问,或者可以配置不拦截URL

<property name="exceptUrls">  
    <list>  
        <value>/user/login</value>  
        <value>/user/register</value>  
    </list>  
</property>  
静态资源访问

<url-pattern>/</url-pattern>时,默认就是拦截所有路径,所以静态资源也是无法访问的,参考配置:

<resources mapping="/components/**" location="/components/" />
<resources mapping="/backend/**" location="/backend/" />
<resources mapping="/mobile/**" location="/mobile/" />

配置以后,components、backend和mobile开头的路径资源都能正常访问

注意:静态目录必须是web根(可能是webapp,webContent等)目录下,否则是不能引用的

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值