spring-mvc不攔截靜態資源的配置


spring-mvc不攔截靜態資源的配置

標簽: spring


 

 "mvc:annotation-driven" 的前綴 "mvc"未綁定
辦法:這是我在spring-servlet.xml文件里使用<mvc>開頭的標簽時,忘記引入了命名空間。在xml的beans里面加入如下代碼即可
xmlns:mvc="http://www.springframework.org/schema/mvc"  
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd  


 靜態文件訪問,主要是讓DispatcherServlet不攔截以下靜態資源
<mvc:annotation-driven /> 
<mvc:resources location="/image/" mapping="/image/**"/> 
<mvc:resources location="/css/" mapping="/css/**"/> 
<mvc:resources location="/js/" mapping="/js/**"/>




 <!-- 啟動掃描所有的controller -->  
<context:component-scan base-package="com.peidw.web"/>  
 <mvc:annotation-driven/> 
 
<!-- 對特定路徑攔截-->  
<mvc:interceptors>  
        <mvc:interceptor>  
            <mvc:mapping path="/user/MyHome"/>  
            <mvc:mapping path="/um/*"/>  
            <bean  class="com.peidw.web.interceptor.MyInterceptor"></bean>  
        </mvc:interceptor>  
 </mvc:interceptors>  
 
Java代碼里實現攔截
package com.peidw.web.interceptors;




import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.apache.log4j.*;
/**
 * Created by peidw on 2015/3/6.
 */


@Component
public class HelloInterceptor implements HandlerInterceptor{
    private static Logger logger=Logger.getLogger(HelloInterceptor.class);


    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        logger.info("執行Action前先判斷權限");
        return true;
    }


    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        logger.info("生成視圖前,可以改model和視圖");
    }


    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        logger.info("生成視圖前,可以改model和視圖");
    }
}


package com.peidw.web;


import com.peidw.web.interceptors.HelloInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;


/**
 * Created by peidw on 2015/3/6.
 */


@Configuration
@EnableWebMvc
public class WebApplicationConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new HelloInterceptor()).addPathPatterns("/hello");;


    }
}


 
 <!-- 全局攔截 --> 
 <mvc:interceptors>  
     <bean class="com.peidw.web.interceptor.MyInterceptor"></bean>  
</mvc:interceptors>  
 
 
一些常用注解
@Autowired和@Qualifier  自動注入[根據類型注入]  
@Autowired 可以對成員變量、方法以及構造函數進行注釋,  
@Qualifier 的標注對象是成員變量、方法入參、構造函數入參。  
ps:兩者結合使用相當於@Resourcede效果。  
@Resource   自動注入[根據名稱注入],可寫參數name=""  
@Controller 表示控制器  
@Service    表示業務處理層[一般在serviceImpl]  
@Repository 表示持久層[一般在daoImpl]  
@Component  當你的類不清楚是哪一層的時候使用該注解  
@ResponseBody  異步返回數據類型為json  
@RequestMapping  路徑,請求類型等設置  
@InitBinder   數據綁定  
@RequestBody、@ModeleAttributes、@SessionAttributes等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM