Web系統Login攔截器

所須要導入的包類:import org.springframework.web.servlet.HandleInterceptor;(攔截器要繼承該類)web

public class loginInterceptor implements HandleInterceptor{spring

(主要用到該方法,其餘兩個暫忽略)session

public boolean preHandle(HttpServletRequest request,HttpServletResponse response,object arg2) throws Exception{mvc

//獲取請求的URLapp

String url = request.getRequestURL();jsp

//url:註冊 ,登陸頁面是公開的,這個demo是除了該頁面能夠公開訪問的,其餘的都進行攔截url

if(url.indexOf("login.action")>=0||url.indexOf("reg.action")>=0){spa

//login.action的.action與applicationContext.xml中的mapping path="/*.action"一致xml

return true;對象

}

//獲取seesion

HttpSession session = request.getSession();

LoginUsers user = (LoginsUsers)session.getAttribute("loginUser");

//loginUser是登陸後存到會話中的用戶對象

if(user!=null){

return true;

}

//不符合以上條件的所有跳到登陸頁面

request.getRequestDispatcher("/WEB-INFO/login.jsp").forward(request,response);

return false;

}

 

applicationContext.xml文件中配置攔截器

<mvc:interceptors>

                <mvc:interceptor>

                      <mvc:mapping path="/*.action" />

                      <bean id="LoginInterceptor" class="util.LoginInterceptor" />  //util.LoginInterceptor攔截器的包的位置   LoginInterceptor攔截器的類名
                </mvc:interceptor>

</mvc:interceptors>