package com.common.core.interceptor;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.iss.delver.entity.Classes;
import com.iss.delver.entity.Employee;
import com.iss.delver.entity.Tenant;
/**
* Spring 拦截器
*
* @author jhwen
*
*/
public class SessionInterceptor extends HandlerInterceptorAdapter {
private final Logger logger = Logger.getLogger(SessionInterceptor.class);
/**
* 在业务处理器处理请求之前被调用
*/
@SuppressWarnings("unchecked")
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
// TODO Auto-generated method stub
/**
* 拿到application上的hm
* 已经在登录的时候绑定 hm
*/
HashMap hm=(HashMap)request.getSession().getServletContext().getAttribute("hm");
//判断是否已经登录
if(hm == null){
//重新绑定
hm = new HashMap();
request.getSession().getServletContext().setAttribute("hm",hm);
// return true;
Employee emp = (Employee)request.getSession().getAttribute("emp");
Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
Classes cls = (Classes)request.getSession().getAttribute("cls");
if(null == emp || null==tenant || null==cls){
response.sendRedirect("index.ftl");
return false;
}
return true;
}else{
return true;
}
}
/**
* 在业务处理器处理完请求后
*/
// @Override
// public void postHandle(HttpServletRequest request, HttpServletResponse response,
// Object handler, ModelAndView model) throws Exception {
// // TODO Auto-generated method stub
//
// logger.debug("===== postHandle ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
//
// /**
// * 在DispatcherServlet完全处理完请求后被调用
// */
// @Override
// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
// throws Exception{
//
// logger.debug("===== afterCompletion ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
}
applicationContext.xml
<!-- 拦截器 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
<property name="interceptors">
<bean class="com.iss.delver.common.core.interceptor.SessionInterceptor" />
</property>
</bean>
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.iss.delver.entity.Classes;
import com.iss.delver.entity.Employee;
import com.iss.delver.entity.Tenant;
/**
* Spring 拦截器
*
* @author jhwen
*
*/
public class SessionInterceptor extends HandlerInterceptorAdapter {
private final Logger logger = Logger.getLogger(SessionInterceptor.class);
/**
* 在业务处理器处理请求之前被调用
*/
@SuppressWarnings("unchecked")
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
// TODO Auto-generated method stub
/**
* 拿到application上的hm
* 已经在登录的时候绑定 hm
*/
HashMap hm=(HashMap)request.getSession().getServletContext().getAttribute("hm");
//判断是否已经登录
if(hm == null){
//重新绑定
hm = new HashMap();
request.getSession().getServletContext().setAttribute("hm",hm);
// return true;
Employee emp = (Employee)request.getSession().getAttribute("emp");
Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
Classes cls = (Classes)request.getSession().getAttribute("cls");
if(null == emp || null==tenant || null==cls){
response.sendRedirect("index.ftl");
return false;
}
return true;
}else{
return true;
}
}
/**
* 在业务处理器处理完请求后
*/
// @Override
// public void postHandle(HttpServletRequest request, HttpServletResponse response,
// Object handler, ModelAndView model) throws Exception {
// // TODO Auto-generated method stub
//
// logger.debug("===== postHandle ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
//
// /**
// * 在DispatcherServlet完全处理完请求后被调用
// */
// @Override
// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
// throws Exception{
//
// logger.debug("===== afterCompletion ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
}
applicationContext.xml
<!-- 拦截器 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
<property name="interceptors">
<bean class="com.iss.delver.common.core.interceptor.SessionInterceptor" />
</property>
</bean>