- 浏览: 507799 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (278)
- java (41)
- 设计模式 (4)
- sql (10)
- webservice (2)
- spring (9)
- struts (6)
- struts2 (32)
- hibernate (27)
- Struts_hibernate_Spring整合 (4)
- Velocity (1)
- Servlet (9)
- JSP (6)
- javascript (19)
- jquery (10)
- ajax (4)
- html、xml (3)
- JDBC (2)
- JDK (6)
- mysql (2)
- oracle (11)
- SqlServer (1)
- DB2 (4)
- tool (7)
- linux (5)
- UML (1)
- eclipse (8)
- 执行文件 (1)
- 应用服务器 (4)
- 代码重构 (1)
- 日本語 (19)
- 交规 (1)
- office (9)
- firefox (1)
- net (1)
- 测试 (1)
- temp (6)
- 对日外包 (1)
- windows (1)
- 版本控制 (1)
- android (2)
- 项目管理 (1)
最新评论
一、 filter
web.xml
<filter> <filter-name>SessionInvalidate</filter-name> <filter-class>com.sysoft.baselib.web.SessionCheckFilter</filter-class> <init-param> <param-name>checkSessionKey</param-name> <param-value>APP_SESSION_TOKEN</param-value> </init-param> <init-param> <param-name>redirectURL</param-name> <param-value>/sessionInvalidate.jsp</param-value> </init-param> <init-param> <param-name>notCheckURLList</param-name> <param-value>/login.jsp,/logon.do,/logout.jsp,/Index2/index.jsp,/sessionInvalidate.jsp,/Index2/maintop.jsp,/html.jsp</param-value> </init-param> </filter> <filter-mapping> <filter-name>SessionInvalidate</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>SessionInvalidate</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
package com.sysoft.baselib.web; import java.io.IOException; import java.util.HashSet; import java.util.Set; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面 * 配置参数 * checkSessionKey 需检查的在 Session 中保存的关键字 * redirectURL 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath * notCheckURLList 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath */ public class SessionCheckFilter implements Filter { protected FilterConfig filterConfig = null; private String redirectURL = null; private Set notCheckURLList = new HashSet(); private String sessionKey = null; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); if (sessionKey == null) { filterChain.doFilter(request, response); return; } if ((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(sessionKey) == null) { response.sendRedirect(request.getContextPath() +redirectURL); return; } filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { notCheckURLList.clear(); } private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) { String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); String temp = request.getRequestURI(); temp= temp.substring(request.getContextPath().length()+1); //System.out.println("是否包括:"+uri+";"+notCheckURLList+"=="+notCheckURLList.contains(uri)); return notCheckURLList.contains(uri); } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; redirectURL = filterConfig.getInitParameter("redirectURL"); sessionKey = filterConfig.getInitParameter("checkSessionKey"); String notCheckURLListStr = filterConfig .getInitParameter("notCheckURLList"); if(notCheckURLListStr != null){ System.out.println(notCheckURLListStr); String[] params = notCheckURLListStr.split(","); for(int i=0;i<params.length;i++){ notCheckURLList.add(params[i].trim()); } } } }
二、 listener
web.xml
<listener> <listener-class>com.sysoft.syoa.listener.MyHttpSessionListener</listener-class> </listener>
package com.sysoft.syoa.listener; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; import com.sysoft.baseform.process.outer.DateUtil; import com.sysoft.baselib.database.JdbcManager; import com.sysoft.web.util.SessionToken; import com.sysoft.web.util.SessionTokenHelper; public class MyHttpSessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent arg0) { // TODO 新建没关系的。不做任何处理 } /** * 如果session将要丢失,需要执行江苏的解锁动作。 */ public void sessionDestroyed(HttpSessionEvent event) { HttpSession session = event.getSession(); long createTimeLong = session.getCreationTime(); Date date = new Date(createTimeLong); System.err.println("Session的创建时间:"+DateUtil.dateToString(date)+";失效时间:"+DateUtil.dateToString(new Date())); Object obj = session.getAttribute(SessionTokenHelper.TOKEN_NAME); if(obj instanceof SessionToken){ //如果是这个对象才执行操作 SessionToken token = (SessionToken)obj; String userId = token.getUserId(); if(userId != null && !"".equals(userId)){ System.err.println("失效的用户:"+userId); List sqls = new ArrayList(); sqls.add("update js_fw a set a.curr_read_person='' where a.curr_read_person='"+userId+"'"); sqls.add("update js_lw a set a.curr_read_person='' where a.curr_read_person='"+userId+"'"); JdbcManager jdbc = new JdbcManager(); boolean flag = jdbc.executeTrans(sqls); System.err.println("Session失效,解锁"+userId+"结果为:"+flag); } } } }
发表评论
文章已被作者锁定,不允许评论。
-
servlet 相关问题 (一)
2014-10-08 15:15 628一、HttpSessionListener 进行同名 ... -
Servlet 四种过滤器的工作方式
2011-07-07 15:15 1003从J2EE1.3 开始,Servlet2.3 规范中加入 ... -
设置 session 失效时间的方法,HttpSessionListener的使用
2011-06-28 11:10 2137一、设置 session 失效时间的方法 具体 ... -
servlet详解
2010-09-13 12:48 3400Servlet第一天 ... -
servlet struts1 action 线程安全问题
2010-08-17 13:49 4425Servlet/JSP技术和ASP、PHP等相比,由于其多线程 ... -
过滤器( Filter )
2010-08-15 20:17 899一。 1. public class Session ... -
Listener监听( ServletContextListener )
2010-08-15 19:53 1763一。 ServletContext 被 Serv ... -
不支持Cookie环境下的Session跟踪
2010-08-14 13:43 1968一。 如果客户浏览器 ...
相关推荐
过滤器Filter和监听器Listener
NULL 博文链接:https://crazyhacker.iteye.com/blog/662587
Java Web基础与实例教程的PPT,自己制作的PPT,将近400页,免费分享,童鞋们努力学习吧。
关于监听器Listener和过滤器的小demo,自己学完这一节之后,做的一点点小练习。
JavaWebServlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器
listener和filter 监听器和过滤器的介绍以及简单使用(csdn)————程序
Filter过滤器和Listener监听器详解 Filter过滤器 Filter的简介 对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要检查。 Filter的使用 编写一个类,继承并实现javax.servlet.Filter。 package ...
1:过滤器的原理。 2:如何使用过滤器。(对象 api 实现业务功能) 3:映射filter的多种方式 4:filter的案例(重点掌握) 1) 用户权限url设置 2) 解决全网站的post和get方式乱码。
1、Filter的理解和应用 实现一个禁止缓存的过滤器。 要求和提示: (1)禁止浏览器缓存所有动态页面;...通过监听器记录在线用户的姓名,在页面进行用户姓名的显示,同时实现对某个用户的强制下线功能。
很好的教学ppt是关于:Web页面的过滤与监听
用监听器实现在线人数统计,过滤器实现页面自动编码 非法字符过滤
11.1 Web应用的事件模型 11.2 Web应用的过滤器 11.3 小 结 11.1.1 事件与监听器接口 11.1.2 监听环境事件 11.1.3 监听请求事件 11.1.4 监听会话事件 11.1.5 事件监听器的注册
1.Filter 什么是过滤器 其中最重要的就是filter功能.它使用户可以改变一个request和修改一个response. Filter 不是一个servlet... JavaWeb的三大组件分别是:Servlet程序 Listener监听器 Filter过滤器. Filter过滤器是一
三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器 Filter 过滤器它是 JavaEE 的规范。也就是接口 Filter 过滤器它的作用是:拦截请求,过滤响应。 拦截请求常见的应用场景有: 1、权限检查 2、...
课程涵盖:Servlet程序、Filter过滤器、Listener监听器、JSP页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求等全部Web开发核心技术点,并在讲解知识点过程中带领大家完成一个...
给大家介绍了spring-boot中如何定义过滤器、监听器和拦截器,对Spring Boot 编写Servlet、Filter、Listener、Interceptor的相关知识感兴趣的朋友一起看看吧
项目简介 本项目是基于J2EE的Servlet的在线蛋糕店管理系统,本项目有三种权限:游客、用户、管理员。 ...用户:浏览查看商品、...后端:Servlet、过滤器filter、监听器Listener、jdbc 前端:Jsp、Jquery、Ajax、bootstrap
javaweb ...知识点 Javascript知识点 jQuery知识点 14 Bootstrap知识点 17 JDBC & 配置文件 & 连接池 19 Xml文档及解析 31 反射 33 Http协议和Tomcat服务器 36 JavaWeb核心之Servlet 41 ...过滤器Filter
J2EE_MVC:最初接触J2EE时,写一个项目,二进制文件已经丢失,相关代码解释...但没有用到监听器(Listener),过滤器(Filter),JSTL ,EL等技术,以及业务层,DAO层设计等大型项目的思想。只是一个简单的管理系统项目
JAVA EE 开发手册 JavaEE是一个开放的、 基于标准的平台,用以开发、部署和管理N层结构、面向Web的,以服务器为...5、Filter过滤器 6、JDBC之基础介绍 7、30之基础介绍 8、监听器Listener 9、注解( Annotation)