第一步:书写过滤器类,过滤器必须继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter并重写preHandle方法。
/**
* 检测是否已经登录
* <p>Title:SecurityInterceptor </p>
* <p>Description: </p>
* @author zhanghaodong
* @date 2015年11月27日 上午11:18:56
*/
public class SecurityInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if((request.getContextPath().replace("/", "")).equals((request.getRequestURI().replace("/", "")))){
return true;
}
HttpSession session = request.getSession(true);
// 从session 里面获取用户名的信息
Object obj =session.getAttribute(WebCnts.SESSION_KEY_LOGINUSER);
// 判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆
if (obj == null || "".equals(obj.toString())) {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
StringBuilder builder = new StringBuilder();
builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");
builder.append("alert(\"登录已过时,请重新登陆!\");");
builder.append("parent.window.location.href='"+request.getContextPath()+"/login';");
builder.append("</script>");
out.print(builder.toString());
out.close();
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest req, HttpServletResponse res, Object arg2, ModelAndView arg3) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object arg2, Exception arg3) throws Exception {
}
}
第二步:在spring-mvc.xml文件中添加下面代码(过滤的路径)
<mvc:interceptors>
<mvc:interceptor>
<!--过滤所有的路径 -->
<mvc:mapping path="/**"/>
<!--去掉不需要进行过滤的路径,如:静态的路径 -->
<mvc:exclude-mapping path="/login"/>
<mvc:exclude-mapping path="/plugins/**"/>
<mvc:exclude-mapping path="/public/**"/>
<mvc:exclude-mapping path="/upload/**"/>
<mvc:exclude-mapping path="/getCaptha"/>
<mvc:exclude-mapping path="/demo/*.json"/>
<bean class="com.hiersun.ecommerce.security.SecurityInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
分享到:
相关推荐
设定tomcat中session过期时间的三种方式
一个超帅的jsp过滤器 ,对登录进行验证
方法一: 在后台应用程序中设置:Session.Timeout = 1; 注意:1、此方法可以设置在一个... 您可能感兴趣的文章:php 如何设置一个严格控制过期时间的sessionjava设置session过期时间的实现方法php中实现精确设置se
session失效重新登录后,返回之前页面,并保留表单数据
三种判断session过期的方式,源代码,欢迎各位指正。
session过期问题详细实现过程,下载后可以看到效果
配置会话过期跳转过期页面,web.xml 配置过滤文件,及过滤文件方法的编写有详细注释
对于hibernate中session周期的控制
session 获取当前在线登录人,
主要介绍了Session过期后自动跳转到登录页面实例代码,非常不错具有参考借鉴价值,需要的朋友可以参考下
Extjs 4.1 (MVC) 如何动态加载控制层以及session 过期该如何处理
主要介绍了Java Web实现session过期后自动跳转到登陆页功能,涉及java过滤器针对session的判断与跳转相关操作技巧,需要的朋友可以参考下
页面session页面点击会报错,我可以配置拦截器进行拦截操作判断session是否过期。
本案例中 使用maven 搭建spring boot 基本案例 其中实现了 用户登录功能,实现Filter 和 拦截器两种方式 来过滤session登录,后续会使用token方式,请大家关注
asp的session变量过一段时间就会过期,保持它的不过期
在主页面或者公共页面中加入:session.setMaxInactiveInterval(900); 参数900单位是秒,即在没有活动15分钟后,session将失效。 这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是...
用户登录验证,当用户成功登录后,将用户信息存放在session中,然后以后的操作中,都使用过滤器进行验证用户是否登录,这样子会减少很多的代码开发量!
不允许未登陆用户访问的过滤器配置,filter,用户登陆过滤器,session判断用户登陆 不允许未登陆用户访问的过滤器配置
NULL 博文链接:https://lijiejava.iteye.com/blog/1177701
大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间。 对此,可以在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默认24...