session过期时间设置word精品文档10页.docx
- 文档编号:26928224
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:13
- 大小:23.68KB
session过期时间设置word精品文档10页.docx
《session过期时间设置word精品文档10页.docx》由会员分享,可在线阅读,更多相关《session过期时间设置word精品文档10页.docx(13页珍藏版)》请在冰豆网上搜索。
session过期时间设置word精品文档10页
在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户没有使用系统一定时间后,自动退出登录,销毁session。
具体设置很简单:
在主页面或者公共页面中加入:
session.setMaxInactiveInterval(900);
参数900单位是秒,即在没有活动15分钟后,session将失效。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。
所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。
在一般系统中,也可能需要在session失效后做一些操作,
(1)控制用户数,当session失效后,系统的用户数减少一个等,控制用户数在一定范围内,确保系统的性能。
(2)控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不用提示,直接登录了
那么如何在session失效后,进行一系列的操作呢?
这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序,就可以了。
监听器类为:
HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法
自己可以继承这个类,然后分别实现。
sessionCreated指在session创建时执行的方法
sessionDestroyed指在session失效时执行的方法
给一个简单的例子:
publicclassSessionListenerimplementsHttpSessionListener{
publicvoidsessionCreated(HttpSessionEventevent){
HttpSessionses=event.getSession();
Stringid=ses.getId()+ses.getCreationTime();
SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户
}
publicvoidsessionDestroyed(HttpSessionEventevent){
HttpSessionses=event.getSession();
Stringid=ses.getId()+ses.getCreationTime();
synchronized(this){
SummerConstant.USERNUM--;//用户数减一
SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map
}
}
}
然后只需要把这个监听器在web.xml中声明就可以了
例如:
com.summer.kernel.tools.SessionListener
补充:
具体设置很简单,方法有三种:
(1)在主页面或者公共页面中加入:
死记硬背是一种传统的教学方式,在我国有悠久的历史。
但随着素质教育的开展,死记硬背被作为一种僵化的、阻碍学生能力发展的教学方式,渐渐为人们所摒弃;而另一方面,老师们又为提高学生的语文素养煞费苦心。
其实,只要应用得当,“死记硬背”与提高学生素质并不矛盾。
相反,它恰是提高学生语文水平的重要前提和基础。
java代码
1.HttpSessionses=request.getSession();
2.ses.setMaxInactiveInterval(10);
一般说来,“教师”概念之形成经历了十分漫长的历史。
杨士勋(唐初学者,四门博士)《春秋谷梁传疏》曰:
“师者教人以不及,故谓师为师资也”。
这儿的“师资”,其实就是先秦而后历代对教师的别称之一。
《韩非子》也有云:
“今有不才之子……师长教之弗为变”其“师长”当然也指教师。
这儿的“师资”和“师长”可称为“教师”概念的雏形,但仍说不上是名副其实的“教师”,因为“教师”必须要有明确的传授知识的对象和本身明确的职责。
session.setMaxInactiveInterval(900);
参数900单位是秒,即在没有活动15分钟后,session将失效。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。
所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。
(2)也是比较通用的设置session失效时间的方法,就是在项目的web.xml中设置
这里的15也就是15分钟失效.
(3)直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中
找到
在server.xml中定义context中如下定义:
xml代码
defaultSessionTimeOut="3600"isWARExpanded="true" isWARValidated="false"isInvokerEnabled="true" isWorkDirPersistent="false"/> 需要注意的是如果上述三个地方如果都设置了,有个优先级的问题,从高到低: (3)◊ (2)---◊ (1)-- 一般说来,“教师”概念之形成经历了十分漫长的历史。 杨士勋(唐初学者,四门博士)《春秋谷梁传疏》曰: “师者教人以不及,故谓师为师资也”。 这儿的“师资”,其实就是先秦而后历代对教师的别称之一。 《韩非子》也有云: “今有不才之子……师长教之弗为变”其“师长”当然也指教师。 这儿的“师资”和“师长”可称为“教师”概念的雏形,但仍说不上是名副其实的“教师”,因为“教师”必须要有明确的传授知识的对象和本身明确的职责。 session失效时间分类: coreJava2019-03-1800: 07设置Session失效时间博客分类: •java WebWebsphereXML配置管理Servlet session-timeout(web.xml)元素与session.setMaxInactiveInterval()函数 a)webappserver中,如websphere里可以设置超时时间为30分钟 b)在web.xml中的session-config配置 session-timeout元素(WEB.XML文件中的元素)用来指定默认的会话超时时间间隔,以分钟为单位。 该元素值必须为整数。 如果session-timeout元素的值为零或负数,则表示会话将永远不会超时。 如: 1. 2. 3. 4.//30分钟 setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web的时间,单位为以秒计算。 如果设置的值为零或负数,则表示会话将永远不会超时。 常用于设置当前会话时间。 c)在程序中手动设置 java代码 1.session.setMaxInactiveInterval(30*60); 想问两个问题: 一、它们的优先级? 我想C应该最优先,但a和b呢 二、如果一个应用的多个地方设置了不同的interval,会对session有影响吗? 如后台管理用户登录设置超时时间为30分钟,前台用户登录设置超时时间为15分钟。 此时的setMaxInactiveInterval是只影响servlet容器session的实例? 还是影响整个容器(如果是这个,就有问题了) 不对,是可以设置的,三种方式设置: 1.在server.xml中定义context时采用如下定义: defaultSessionTimeOut="3600"isWARExpanded="true" isWARValidated="false"isInvokerEnabled="true" isWorkDirPersistent="false"/> 2.在web.xml中通过参数指定: 其中30表示30分钟 3.在程序中通过servletapi直接修改 HttpSessionses=request.getSession(); ses.setMaxInactiveInterval(10); 设置单位为秒,设置为-1永不过期。 因为可能要用到cookie,所以学了一下,但又发现不用了,为了以后不忘,写下此篇笔记。 一、cookie简介浏览器与WEB服务器之间是使用HTTP协议进行通信的;而HTTP协议是无状态协议。 也就是说,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。 因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。 为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,它是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。 它是服务器发送给浏览器的体积很小的纯文本信息。 定义: cookie是Web浏览器存储的少量命名数据,它与某个特定的网页和网站关联在一起。 cookie实际上和某一网站和网页关联的,保存用户一定信息的文本文件。 二、cookie的属性除名字与值外,每个cookie有四个可选属性: 1.expires: 指定cookie的生存期。 默认情况下cookie是暂时的,浏览器关闭就失效。 2.path: 它指定了与cookie关联在一起的网页。 默认是在和当前网页同一目录的网页中有效。 如果把path设置为"/",那么它对该网站的所有网页都可见了。 3.domain: 设定cookie有效的域名,如果把path设置为"/",把domain设为".sohu",那么A.sohu和B.sohu的所有网页都能够访问此cookie。 4.secure: 布尔值,它指定了网络上如何传输cookie。 默认情况下,cookie是不安全的,可以通过一个不安全的,普通的HTTP协议传输;若设置cookie为安全的,那么它将只在浏览器和服务器通过HTTPS或其它的安全协议连接在一起时才被传输。 三、cookie的操作cookie可以用javascipt来操作,也可以用JSP来操作。 下面给大家我写的几个例子,相信大家一看就明白了: 1.javascript操作: //设置cookie,cookie有效期时间未GMT时间(距1970年1月1日临时的毫秒) //例如可以设置setCookie("password","12345",(3600000*24*180)),180有效 functionsetCookie(name,value,expires){ varexpdate=newDate(); expdate.setTime(expdate.getTime()+expires); document.cookie=name+"="+escape(value)+ ";expires="+expires.toGMTString()+";path=/"; //根据cookie名,取得cookie值 functiongetCookie(name){ varsearch; search=name+"=" offset=document.cookie.indexOf(search) if(offset! =-1){ offset+=search.length; end=document.cookie.indexOf(";",offset); if(end==-1) end=document.cookie.length; returnunescape(document.cookie.substring(offset,end)); else return""; //删除某一cookie functiondeleteCookie(name){ varexpdate=newDate(); expdate.setTime(expdate.getTime()-(3600*24*1000*1)); setCookie(name,"",expdate); //检查是否存在此cookie functioncheckCookie(cookieName,cookieValue){ if(getCookie(cookieName)==cookieValue){ returntrue; }else{ returnfalse; 2.jsp操作: java中有个Cookie类: javax.servlet.http.Cookie //读取cookie的通用类,以Cookie[]做参数传个构造函数; packagecom.test; importjavax.servlet.http.*; *@authorsheng_li publicclassComCookie{ privateCookie[]cookies; privateCookiecookie; publicComCookie(Cookie[]cs){ cookies=cs; *通过cookieName,取得cookieValue,如果没有此cookie则返回默认值 *@paramcookieName *@paramdefaultValue *@return publicStringgetCookieValue(StringcookieName,StringdefaultValue){ for(inti=0;i Cookiecookie=cookies[i]; if(cookieName.equals(cookie.getName())) return(cookie.getValue()); return(defaultValue); *类方法,通过cookieName,取得cookieValue *@paramcookies *@paramcookieName *@paramdefaultValue *@return publicstaticStringgetCookieValue(Cookie[]cookies, StringcookieName, StringdefaultValue){ for(inti=0;i Cookiecookie=cookies[i]; if(cookieName.equals(cookie.getName())) return(cookie.getValue()); return(defaultValue); JSP中: (以下内容来源于网络) JSP是使用如下的语法格式来创建cookie的: Cookiecookie_name=newCookie("Parameter","Value"); 例如: CookienewCookie=newCookie("username","waynezheng");response.addCookie(newCookie); 解释: JSP是调用Cookie对象相应的构造函数Cookie(name,value)用合适的名字和值来创建Cookie,然后Cookie可以通过HttpServletResponse的addCookie方法加入到Set-Cookie应答头,本例中Cookie对象有两个字符串参数: username,waynezheng。 注意,名字和值都不能包含空白字符以及下列字符: @: ;? "/[]()= 处理Cookie的属性 看到这里,有的朋友又要问了: 我光知道如何创建Cookie有什么用呀? 是呀,光知道如何创建Cookie而不知道怎么使用是不够的。 在JSP中,程序是通过cookie.setXXX设置各种属性,用cookie.getXXX读出cookie的属性,现把Cookie的主要属性,及其方法列于下,供大家参考: 读取客户端的Cookie 类型方法名方法解释 StringgetComment()返回cookie中注释,如果没有注释的话将返回空值. StringgetDomain()返回cookie中Cookie适用的域名.使用getDomain()方法可以指示浏览器把Cookie返回给同一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。 注意域名必须以点开始(例如.yesky) intgetMaxAge()返回Cookie过期之前的最大时间,以秒计算。 StringgetName()返回Cookie的名字。 名字和值是我们始终关心的两个部分,笔者会在后面详细介绍getName/setName。 StringgetPath()返回Cookie适用的路径。 如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。 booleangetSecure()如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。 StringgetValue()返回Cookie的值。 笔者也将在后面详细介绍getValue/setValue。 intgetVersion()返回Cookie所遵从的协议版本。 voidsetComment(Stringpurpose)设置cookie中注释。 voidsetDomain(Stringpattern)设置cookie中Cookie适用的域名 voidsetMaxAge(intexpiry)以秒计算,设置Cookie过期时间。 voidsetPath(Stringuri)指定Cookie适用的路径。 voidsetSecure(booleanflag)指出浏览器使用的安全协议,例如HTTPS或SSL。 voidsetValue(StringnewValue)cookie创建后设置一个新的值。 voidsetVersion(intv)设置Cookie所遵从的协议版本。 在Cookie发送到客户端前,先要创建一个Cookie,然后用addCookie方法发送一个HTTPHeader。 JSP将调用request.getCookies()从客户端读入Cookie,getCookies()方法返回一个HTTP请求头中的内容对应的Cookie对象数组。 你只需要用循环访问该数组的各个元素,调用getName方法检查各个Cookie的名字,至找到目标Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值。 例如 StringuserName=request.getParameter("username");//从提交的HTML表单中获取,用户名 CookietheUsername=newCookie("username",userName);//以"username",userName值/对创建一个Cookie response.addCookie(theUsername); CookiemyCookie[]=request.getCookies();//创建一个Cookie对象数组 for(intn=0;n=cookie.length-1;i++);//设立一个循环,来访问Cookie对象数组的每一个元素 CookienewCookie=myCookie[n]; if(newCookie.getName().equals("username"));//判断元素的值是否为username中的值 你好,<%=newCookie.getValue()%>! //如果找到后,向他问好 设置Cookie的存在时间,及删除Cookie在JSP中,使用setMaxAge(intexpiry)方法来设置Cookie的存在时间, 参数expiry应是一个整数。 正值表示cookie将在这么多秒以后失效。 注意这个值是cookie将要存在的最大时间, 而不是cookie现在的存在时间。 负值表示当浏览器关闭时,Cookie将会被删除。 零值则是要删除该Cookie。 如: CookiedeleteNewCookie=newCookie("newcookie",null); deleteNewCookie.setMaxAge(0); deleteNewCookie.setPath("/"); response.addCookie(deleteNewCookie); tomcat设置session失效时间 分类: Java2019-11-0918: 50107人阅读评论(0)收藏举报 tomcat在5.5以后,就没有自带admin项目了,如果要从http: //localhost: 8080界面进入tomcat管理页面,需要从网上下载对应的tomcat-admin.zip,举个例子,如果你的tomcat是5.5.30的,需要从http: //tomcat.apache.org/download-55.cgi下载(在下载页面的BinaryDistributions栏下的第四大项,AdministrationWebApplication即是)。 解压以后,得到的文件夹里,东西都已经给你
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- session 过期 时间 设置 word 精品 文档 10