springMVC 攔截器的使用


首先在springMVC.xml配置如下代碼

 <!--     攔截器 -->
        <mvc:interceptors>
   <bean class="com.base.AccessFilter"></bean> </mvc:interceptors>

然后再創建一個class實現想要攔截的方法即可,如(對應如上配置文件class路徑)

package com.base;

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

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

import com.ujia.entity.User;

public class AccessFilter implements HandlerInterceptor{

    @Override
    public void afterCompletion(HttpServletRequest arg0,
            HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
            Object arg2, ModelAndView arg3) throws Exception {
        // TODO Auto-generated method stub
        
    }

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
            Object arg2) throws Exception {
        //獲取登錄session
        User user =(User) request.getSession().getAttribute("user");
        //如果訪問請求為首頁,則通過
        if(request.getRequestURI().startsWith(request.getContextPath()+"/spring/index.htm")){
            return true;
        }else if(null==user){
            //如果沒有登錄session,則返回到首頁
            response.sendRedirect(request.getContextPath()+"/spring/index.htm");
            return false;
        }
        return true;
    }

}

只需實現preHandle,所有請求都將先經過這個方法

攔截特殊請求,在springMVC配置里面加上

<!--將攔截特有的URL請求 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/admin/*" />
            <bean class="com.base.admin" />
        </mvc:interceptor>
        <mvc:interceptor>
            <mvc:mapping path="/caes/*.trl" />
            <bean class="com.base.caes" />
        </mvc:interceptor>
    </mvc:interceptors>

 


免責聲明!

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



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