判断脚本启动判断session是否失效时之前是否有输出的方法

JavaWeb Session失效时间设置方法
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了JavaWeb Session失效时间设置方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
&session失效时间设置方法,具体方法如下所示:
一、java代码&& &!--优先级是最高的--&
request.getSession().setMaxInactiveInterval(1800);/*秒为单位, 即30分种*/
二、web.xml& &!--优先级是最低的--&
&session-config&
&!--分钟为单位--&
&session-timeout&30&/session-timeout&
&/session-config&
三、web服务器resin.conf,tomcat,
&session-config&
&!--分钟为单位--&
&session-timeout&30&/session-timeout&
&enable-url-rewriting&false&/enable-url-rewriting&
&/session-config&
优先级: 1 & 3 & 2
session 在tomcat重启后一般也不会失效,关闭浏览器后,session失效
在一般系统中,也可能需要在session失效后做一些操作:
(1)控制用户数,当session失效后,系统的用户数减少一个等,控制用户数在一定范围内,确保系统的性能。
(2)控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不用提示,直接登录了。
那么如何在session失效后,进行一系列的操作呢?
这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了。
监听器类为: HttpSessionListener 类,有 sessionCreated 和sessionDestroyed 两个方法
  自己可以继承这个类,然后分别实现。
  sessionCreated指在session创建时执行的方法
  sessionDestroyed指在session失效时执行的方法
public class OnlineListener implements HttpSessionListener{
public void sessionCreated(HttpSessionEvent event) {
  HttpSession ses = event.getSession();
  String id=ses.getId()+ses.getCreationTime();
  SummerConstant.UserMap.put(id, Boolean.TRUE);
//添加用户
  public void sessionDestroyed(HttpSessionEvent event) {
   HttpSession ses = event.getSession();
   String id=ses.getId()+ses.getCreationTime();
  synchronized (this) {
SummerConstant.USERNUM--;
//用户数减一
SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map
把这个监听器在web.xml中声明就可以了:
&listener&
&listener-class&com.demo.system.listener.OnlineListener&/listener-class&
&/listener&
上面是一个简单的利用session监听用户数的方法,在实际过程中,可能比这个复杂得多。
比如要同时实现 ServletContextListener,HttpSessionListener两个接口,重写它们的方法等。
以上所述是小编给大家介绍的JavaWeb Session失效时间设置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具Jsp中解决session过期跳转到登陆页面并跳出iframe框架的方法
字体:[ ] 类型:转载 时间:
这里我们是介绍一个网站管理后台三个框架页面当我们的jsp定义的session变量超时时用户点击时自动退出框架页面并跳到登录页面去了,下面我来给大家演示一个实例
当session过期后可以用过滤器来设置重定向页面 代码如下:public class ActionFilter extends HttpServlet implements Filter {private FilterConfig filterCpublic void init(FilterConfig config) {this.filterConfig =}public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {HttpServletRequest req = (HttpServletRequest) servletRservletRequest.setCharacterEncoding(“UTF-8″);HttpServletResponse res = (HttpServletResponse) servletRString url = req.getRequestURI();SysUserVOImpl user = (SysUserVOImpl) req.getSession().getAttribute(“SysUser”);if (null == user) {if (!COMMON.isEmpty(url) && (url.endsWith(“newestlogin.jsp”) || url.endsWith(“UserLoginAction.jsp”) || url.endsWith(“login.jsp”) || url.endsWith(“loginAction.do”))) {filterChain.doFilter(servletRequest, servletResponse);} else {req.getRequestDispatcher(“/newestlogin.jsp”).forward(req, res);}} else {filterChain.doFilter(servletRequest, servletResponse);}}但是这样不能不能跳出iframe等框架。可以用javaScript解决在你想控制跳转的页面,比如login.jsp中的&head&与&/head&之间加入以下代码: 代码如下:&script language=”JavaScript”& if (window != top) top.location.href = location. &/script&JS刷新框架的脚本语句 代码如下://如何刷新包含该框架的页面用&& &script language=JavaScript&&& parent.location.reload();&/script&& //子窗口刷新父窗口&script language=JavaScript&&&& self.opener.location.reload();&/script&( 或 &a href="javascript:opener.location.reload()"&刷新&/a&&& )//如何刷新另一个框架的页面用&& &script language=JavaScript&&& parent.另一FrameID.location.reload();&/script&如果想关闭窗口时刷新或者想开窗时刷新的话,在&body&中调用以下语句即可。&body onload="opener.location.reload()"& 开窗时刷新&body onUnload="opener.location.reload()"& 关闭时刷新&script language="javascript"&window.opener.document.location.reload()&/script&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具PHP中header和session_start前不能有输出原因分析- php编程_php教程 黑帽网
&>&&>&&>& > 正文
PHP中header和session_start前不能有输出原因分析
在http传输文本中,规定必须 header和content顺序必须是:header在前content在后,并且header的格式必须满足“keyword: value/n”这种格式。& & 1、在header输出之前有输出内容的话,就会造成对header的错误理解(尽管现在已经能容错了),例如不是满足“keyword: value/n”的格式还好,直接错误了,但是满足“keyword: value/n”这个格式以后,客户端是否安装错误理解,还是按照正确理解?& & 2、session开启是会隐含的触发是否用header(“Set-Cookie: sid=xxxxxx”),也就是其实还是一个隐式的header调用 & & 您可能感兴趣的文章:PHP session_start()问题解疑(详细介绍)php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法php session_start()出错原因分析及解决方法& & QQ空间 新浪微博 腾讯微博 搜狐微博 人人网 开心网 百度搜藏更多& & Tags:header session start& & 复制链接收藏本文打印本文关闭本文返回首页& & 上一篇:PHP跨时区(UTC时间)应用解决方案& & 下一篇:php 无限级分类,超级简单的无限级分类,支持输出树状图& & 相关文章PHP XML操作的各种方法解析(比较详细)php set_magic_quotes_runtime() 函数过时解决方法php遍历数组的方法分享php 生成WML页面方法详解PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码PHP中is_file不能替代file_exists的理由php并发对MYSQL造成压力的解决方法比较全的PHP 会话(session 时间设定)使用入门代码深入解析php中的foreach函数php实现mysql同步的实现方法& & 文章评论 & & 最 近 更 新& & PHP.ini中配置屏蔽错误信息显示和保存错误使用PHP强制下载PDF文件示例之跨网站请求伪造与防止伪造方法phpmyadmin里面导入sql语句格式的大量数据相对路径转化成绝对路径eAccelera的安装与使用详解NOT NULL 和NULLPHP 判断常量,变量和函数是否存在简单的PHP图片上传程序php 函数中使用static的说明& & 热 点 排 行& & php中iconv函数使用方法PHP 页面跳转到另一个页面的多种php字符串截取问题PHPMyadmin 配置文件详解(配置)火车头采集器3.0采集图文教程php出现Cannot modify header in特详细的PHPMYADMIN简明安装教程php中json_decode()和json_encodphp下intval()和(int)转换使用与require(),include(),require_on
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&PHP中$_session是什么意思?怎么用?-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
PHP中$_session是什么意思?怎么用?
来源:互联网 发表时间: 9:11:33 责任编辑:王亮字体:
为了帮助网友解决“PHP中$_session是什么意思?怎么用?”相关的问题,学网通过互联网对“PHP中$_session是什么意思?怎么用?”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:PHP中$_session是什么意思?怎么用?,具体解决方案如下:解决方案1:);/ 然后去session.在执行第2步 一个实际例子, time() - 8000000.写入SESSION操作 在脚本结束的时候会执行SESSION写入操作,方法有很多;open&#39.假如用户需要session_destroy() 先执行$sess_save_path//&#47,假如需要人为强制过期; $sess_file = &quot. 如果存在那么session_id = $_COOKIE[session_name],但是有的系统是 session, &#47,但是找不到数据2;&#47,更加直观 * session_set_save_handler('&#47, time() - 42000./;&#47,然后关闭相关资源;/;&#47。.gc_probability = 0.save_handler = files * 1,&#47,然后放到$_SESSION中 * 2。 * 2,是需要检查每个文件是否过期的;) as $filename) { if (filemtime($filename) + $maxlifetime & } }/1000;&#47.gc_divisor 结果 1&#47. 读取文件的内容反序列化;&#47,比如D foreach (glob(& $sess_save_path = $save_path, $sess_data) { echo &quot.ini找到 session,可以通过这个值进行操作, $session_name)打开session操作句柄 $save_path 在session,COOKIE是在header头中发送的,比如销毁一个旧的的session_), 'blah'.session,因为session的垃圾回收.脚本执行结束 执行write($id,然后把生成的session_id作为COOKIE的值传递到客户端,因为session是存放在文件中;sdfsf&quot,而不是关闭浏览器;);test'&#39, o 1.gc_probability/不建议设置过小;gc'默认值PHPSESSID3;sess_$id&quot。默认为空 ) 4; &#47.相当于执行了下面COOKIE 操作,这个值可以从sess_$id&quot,session_name()返回保存session_id的COOKIE键值;SESSION初始化的时候调用 function open($save_path.cookie_domain,执行写入操作 function write($$sess_save_path&#47.gc_probability = 1.save_handler = user 用户自定义session处理机制, &#39,这个两个参数都用不上; return $&#39,可能需要创建新的文件;//,这一步执行了setcookie()操作;过期时间 默认24分钟 &#47,比如 退出登录; } /,删除$_SESSION 删除session文件;write' $sess_file = &quot. 销毁SESSION SESSION发出去的COOKIE一般属于即时COOKIE,SESSION的回收是要删文件的;这是随机分级存储,直接返回TRUE 执行read($id)从中读取数据; time()) { @unlink($filename). session会判断当前是否有$_COOKIE[session_name()], $sess_data);&#47, &#39, session_id()。 setcookie(session_name(),但是没有数据,2和3都会有COOKIE传过来;&#47.gc_maxlifetime = 1440/旧session cookie过期 } session_regenerate_id(). setcookie(session_name(),注意的是;close'&#47,PHP自身的垃圾回收是无效的.Drupal的匿名用户有一个SESSION的;/sess_$id&quot.save_path指定的文件夹里去找名字为' if ($fp = @fopen($sess_/read'概率是默认'SESS_' return (string) @file_get_contents($sess_file),当脚本执行结束的时候;两个参数;w&quot.cookie_session,才会过期,那么就需要在代码里销毁SESSION; return(@unlink($sess_file));这会删除所有的$_SESSION数据.cookie_lifetime, &#39: &#47,有COOKIE传过来. 这个阶段有可能执行更改session_id的操作;session_id()返回的是新的值 3;这个参数是自动传递的就是session_id(). session_id()的文件, $sess_data) &#47,这之前是不能有输出的, &#39,但是如果用户自定的话;'&#47,垃圾回收将不起作用, &#39, &#39,刷新后,用把$_SESSION的值写入到session_id指定的文件夹中; } &#47. 为$_SESSION赋值 比如新添加一个值$_SESSION[&#39,当浏览器关闭后; $sess_file = &quot,当它登录后需要换用新的session_id if (isset($_COOKIE[session_name()])) { setcookie(session_name();; global $sess_save_ } function gc($maxlifetime) { global $sess_save_$sess_save_path&#47,生成一个全新的session_id. session_start()是session机制的开始;当前程序跟目录下都有效] = &#39. session_start() 1,/sess_*& } function read($id) { global $sess_save_/&#47,/好像不同的系统默认不一样,而是通过cron脚本来实现垃圾回收; ,这也就是说概率是0,这个样的话. session_destroy();/path&这个作用更彻底, 执行open($save_关闭的时候调用 function close() { return(true),需要自己写脚本 2.gc_divisor = 1000 session,PHP有另外一个函数 session_regenerate_id() 如果使用这个函数;;&#47. 1, session_id(). usset($_SESSION).name = PHPSESSID /)) { $return = fwrite($默认0 session,再次刷新.save_path = &#47, &quot, $session_name) { global $sess_save_&#47.ini的配置决定的,很简单 * 3,和session_id 当不关闭浏览器的情况下.save_handler = files的情况下它就是 fclose($fp).一半用在自定义 session操作;destroy'&#47,角色的转换上;N;,有一种设置是 &quot.save_path,它有一定概率开启垃圾回收; } } function destroy($id) { global $sess_save_path,把$_SESSION中值写入到session_id命名的文件中,保存在内存中,这之前也是不能有输出的.;/ 那么这个$_SESSION只会维护在内存中;。 * 4; return(true);这一步会生成新的session_id &#47, ; } else { return(false)1;/$sess_save_path&#47。 o 3,可能已经存在. 如果不存在会生成一个session_/退出登录前执行 o 2.session_start();脚本执行结束之前,这个概率是根据php
1个回答5个回答4个回答5个回答4个回答3个回答4个回答6个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号北邮 web技术
阶段作业_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
北邮 web技术
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩13页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 js判断session过期 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信