监听器、拦截器完成对session、cookie的会话控制
package com.trsmedia.interceptor; import java.util.Date; import java.util.Timer;
import java.util.TimerTask; import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener; /**
*
* @author : qinyi
* date : 2019年7月10日,下午1:58:30 */
public class MySessionListener implements HttpSessionListener { public void sessionCreated(final HttpSessionEvent se) { Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
HttpSession session = se.getSession(); System.out.print("del..."+new Date()); session.invalidate();
}
}, 1000*60*10, 1000*60*10); } public void sessionDestroyed(HttpSessionEvent se) { // TODO Auto-generated method stub } }
package com.trsmedia.interceptor; import java.util.Timer;
import java.util.TimerTask; import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest; /**
*
* @author : qinyi
* date : 2019年7月10日,下午4:28:11 */
public class MyRequestContextListener implements ServletRequestListener { @Override
public void requestDestroyed(final ServletRequestEvent sre) {
// TODO Auto-generated method stub Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
HttpServletRequest request = (HttpServletRequest) sre.getServletRequest(); javax.servlet.http.Cookie[]cookies=request.getCookies();
if(cookies!=null){
for(javax.servlet.http.Cookie c:cookies){
System.out.println("正再删除"+c.getName());
c.setMaxAge(0);
}
}
}
}, 1000*60*10, 1000*60*10); } @Override
public void requestInitialized(ServletRequestEvent sre) {
// TODO Auto-generated method stub } }
web.xml
<listener>
<listener-class>com.trsmedia.interceptor.MyRequestContextListener</listener-class>
</listener>
<listener>
<listener-class>com.trsmedia.interceptor.MySessionListener</listener-class>
</listener>
package com.trsmedia.interceptor; import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; /**
*
* @author : qinyi
* date : 2019年7月9日,下午10:59:49 */
public class LoginInterceptor extends HandlerInterceptorAdapter {
private List<String> IGNORE_URI; @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession();
if(session != null && session.getAttribute("UserInfo") != null){
return true;
}else{
response.sendRedirect("main.jsp");
return false;
}
} public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
public List<String> getIGNORE_URI() {
return IGNORE_URI;
}
public void setIGNORE_URI(List<String> IGNORE_URI) {
this.IGNORE_URI = IGNORE_URI;
} }
spring.xml
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/static/**"/>
<mvc:exclude-mapping path="/nosso.do"/>
<mvc:exclude-mapping path="/nosso.jsp"/>
<mvc:exclude-mapping path="/main.jsp"/>
<mvc:exclude-mapping path="/login.do"/>
<mvc:exclude-mapping path="/logout.do"/>
<mvc:exclude-mapping path="/loginChoose.do"/>
<bean id="loginInterceptor" class="com.trsmedia.interceptor.LoginInterceptor">
</bean>
</mvc:interceptor>
</mvc:interceptors>
监听器、拦截器完成对session、cookie的会话控制的更多相关文章
- struts2 javaweb 过滤器、监听器 拦截器 原理
转: 过滤器.监听器 拦截器 过滤器 创建一个 Filter 只需两个步骤: (1)创建 Filter 处理类: (2)在 web.xml 文件中配置 Filter . 创建 Filter 必须实现 ...
- 分布式系统登录功能拦截器的实现以及cookie的共享问题(利用cookie实现session在分布式系统的共享)
当我们的网站采用分布式部署系统时,每个子系统拥有自己独立的session,如果不实现session共享,当用户切换系统访问的时候,会不停的提示登录,这对于用户体验是非常不好的.因此对于多个子系统的的访 ...
- java-过滤器-监听器-拦截器
1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml ...
- JavaWeb过滤器.监听器.拦截器-原理&区别-个人总结
对比项 拦截器 过滤器 机制 反射机制 函数回调 是否依赖servlet容器 是 否 请求处理 只能对action请求起作用 几乎所有的请求起作用 对action处理 可以访问action上下文.值栈 ...
- JavaWeb过滤器.监听器.拦截器-原理&区别(转)
1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的 ...
- AOP,过滤器,监听器,拦截器【转载】
面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承.多态和封装.而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配 ...
- Spring MVC 拦截器配置 -- 利用session
spring-servlet.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns=& ...
- JavaWeb过滤器.监听器.拦截器-?原理&区别
过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西:拦截器可以简单理解为“拒你所想拒”,关心你想要拒绝掉哪些东西,比如一个BBS论坛上拦截掉敏感词汇. 1.拦截器是基于java的反射机制,过 ...
- 过滤器 & 监听器 & 拦截器
过滤器: https://blog.csdn.net/MissEel/article/details/79351231 https://blog.csdn.net/qq_32363305/articl ...
随机推荐
- Java 系书籍,,,,,,,,,,,,,
Java 系书籍 本文仅对每本书做简单介绍,里面的精华我是希望留给各位看官仔细去阅读去琢磨~~ Java 1. <Java核心技术 卷1 基础知识> 2. <Java核心技术 卷II ...
- Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class
Aspect-Oriented Programming : Aspect-Oriented Programming with the RealProxy Class A well-architecte ...
- identityserver4踩坑总结
1.在配置id4服务端的时候要注意client里面的 AllowedScopes开放的值要和GetIdentityResources中加入的值是一样的,不然调用以后报{"error" ...
- nRF51822学习笔记 之 blinky_example
使用的开发板是nRF51822 AK II,爱板网做活动买的. 开发资料可以去这里下载:链接: http://pan.baidu.com/s/1f8pD8 密码: 741y
- POI 讀取EXCEL
/*** 獲取單元格數值* * @param cell* @return*/private String getCellValue(Cell cell) {String cellValue = &qu ...
- do_mmap解读
1: unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 2: unsigned long len, unsigned ...
- QTP使用Smtp协议发送邮件
NameSpace = "http://schemas.microsoft.com/cdo/configuration/" Set Email = CreateObject(&qu ...
- Java_3.Java帮助文档
1.Oracle的在线帮助文档 http://docs.oracle.com/javase/8/docs/api 2.jdk源码内容(包含5个部分) [以下内容参考至:https://blog.csd ...
- 页面跳转到Area区域连接
@Html.ActionLink("主页", "Index", new { controller = "Test", Action = &q ...
- MariaDB学习笔记(一)
一.数据类型:1.整数类型: TINYINT:1Byte SMALLINT:2Byte MEDIUMINT:3Byte INT:4Byte INTEGER:4Byte BIGINT:8Byte 2.浮 ...