代码:
首先在spring的mvc的xml中加入
上面配置了 spring将拦截那些,不拦截那些访问。当中的com.smarcloud.control.aop.SessionHelper这个类是要自己写的,拦截后进入这个类
这个各类将拦截的访问中的request中寻找session 如果是空的,则回到登入页面.
首先在spring的mvc的xml中加入
<!-- mvc拦截器 -->
<mvc:interceptors>
<mvc:interceptor> <!-- 可以增加多个拦截器 -->
<mvc:mapping path="/**"/> <!-- 需要拦截的 -->
<mvc:exclude-mapping path="/"/> <!-- 不需要拦截的 -->
<mvc:exclude-mapping path="/login"/>
<mvc:exclude-mapping path="/logout"/>
<mvc:exclude-mapping path="/manage/**"/>
<bean class="com.smarcloud.control.aop.SessionHelper" />
</mvc:interceptor>
</mvc:interceptors>
上面配置了 spring将拦截那些,不拦截那些访问。当中的com.smarcloud.control.aop.SessionHelper这个类是要自己写的,拦截后进入这个类
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Repository;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.smarcloud.control.util.Constant;
@Repository //将这个类交给spring容器管理
public class SessionHelper extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
//Constant.LOGIN_USER_SESSION 为session的名字
Object obj = request.getSession().getAttribute(Constant.LOGIN_USER_SESSION);
if(obj==null){
request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
return false;
}
else{
return super.preHandle(request, response, handler);
}
}
}
这个各类将拦截的访问中的request中寻找session 如果是空的,则回到登入页面.