- 浏览: 69378 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
session对象用于在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的操作状态,在会话存储的信息,在浏览器发出后续请求时可以获取这些会话的有效数据。
在jsp页面中可以直接使用session对象(jsp的内置对象),也可以通过pageContext.getSession()或者request.getSession重新回去session对象。
session可以保存用户的信息和实现购物车等功能。
HTTP协议是一种无状态协议,客户向服务器发出的请求request,然后服务器返回响应response,连接就被关闭了,在服务器不保存连接的有关信息,因此在下一次连接时,服务器已经没有以前的连接信息了,无法判断这一次连接和上一次连接时同一个客户信息,因此,必须使用会话记录有关连接的信息。
从客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器,称做一个会话。当客户访问服务器是,可能会反复连接这个服务器上的几个页面、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种方法知道这是同一个客户,这时就需要session对象。
session的工作原理如下:
1、客户首次访问服务器的一个页面时,服务器就会为该用户分配一个session对象,同时为这个session指定唯一的ID,并且将该ID发送到客户端并写入到cookie中,使得客户端与服务器的session建立一一对应的关系;
2、当客户端继续访问服务器端的其它资源时,服务器不再为该客户分配新的session对象,直到客户端浏览器关闭、超时或调用session的invalidate()方法使其失效,客户端与服务器的会话结束。
3、当客户重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,并重新分配sessionID。
session对象主要用于属性操作和会话管理,常用方法如下:
1、public void setAttribute(String name,String value)设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。
2、public Object getAttribute(String name)在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。
3、public void removeAttribute(String name),删除指定名字的session属性,若该属性不存在,则出现异常。
4、public void invalidate(),使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。
5、public String getId( ),获取当前的会话ID。每个会话在服务器端都存在一个唯一的标示sessionID,session对象发送到浏览器的唯一数据就是sessionID,它一般存储在cookie中。
6、public void setMaxInactiveInterval(int interval) 设置会话的最大持续时间,单位是秒,负数表明会话永不失效。
7、public int getMaxInActiveInterval(),获取会话的最大持续时间。
8、使用session对象的getCreationTime()和getLastAccessedTime()方法可以获取会话创建的时间和最后访问的时间,但其返回值是毫秒,一般需要使用下面的转换来获取具体日期和时间。
Date creationTime = new Date(session.getCreationTime());
Date accessedTime = new Date(session.getLastAccessedTime());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>session对象方法</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<b>
会话ID:<%=session.getId() %> <br>
是否新会话:<%=session.isNew() %><br>
设置和获取属性对象:用户名 =
<%session.setAttribute("用户名","bing"); %>
<%=session.getAttribute("用户名") %><br>
<%
Date creationTime = new Date(session.getCreationTime());
Date accessedTime = new Date(session.getLastAccessedTime());
%>
会话创建时间:<%=creationTime %><br>
上次访问时间:<%=accessedTime %><br>
会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
<%session.setMaxInactiveInterval(12); %>
修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
<%session.invalidate(); %>
</b>
</body>
</html>
在jsp页面中可以直接使用session对象(jsp的内置对象),也可以通过pageContext.getSession()或者request.getSession重新回去session对象。
session可以保存用户的信息和实现购物车等功能。
HTTP协议是一种无状态协议,客户向服务器发出的请求request,然后服务器返回响应response,连接就被关闭了,在服务器不保存连接的有关信息,因此在下一次连接时,服务器已经没有以前的连接信息了,无法判断这一次连接和上一次连接时同一个客户信息,因此,必须使用会话记录有关连接的信息。
从客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器,称做一个会话。当客户访问服务器是,可能会反复连接这个服务器上的几个页面、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种方法知道这是同一个客户,这时就需要session对象。
session的工作原理如下:
1、客户首次访问服务器的一个页面时,服务器就会为该用户分配一个session对象,同时为这个session指定唯一的ID,并且将该ID发送到客户端并写入到cookie中,使得客户端与服务器的session建立一一对应的关系;
2、当客户端继续访问服务器端的其它资源时,服务器不再为该客户分配新的session对象,直到客户端浏览器关闭、超时或调用session的invalidate()方法使其失效,客户端与服务器的会话结束。
3、当客户重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,并重新分配sessionID。
session对象主要用于属性操作和会话管理,常用方法如下:
1、public void setAttribute(String name,String value)设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。
2、public Object getAttribute(String name)在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。
3、public void removeAttribute(String name),删除指定名字的session属性,若该属性不存在,则出现异常。
4、public void invalidate(),使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。
5、public String getId( ),获取当前的会话ID。每个会话在服务器端都存在一个唯一的标示sessionID,session对象发送到浏览器的唯一数据就是sessionID,它一般存储在cookie中。
6、public void setMaxInactiveInterval(int interval) 设置会话的最大持续时间,单位是秒,负数表明会话永不失效。
7、public int getMaxInActiveInterval(),获取会话的最大持续时间。
8、使用session对象的getCreationTime()和getLastAccessedTime()方法可以获取会话创建的时间和最后访问的时间,但其返回值是毫秒,一般需要使用下面的转换来获取具体日期和时间。
Date creationTime = new Date(session.getCreationTime());
Date accessedTime = new Date(session.getLastAccessedTime());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>session对象方法</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<b>
会话ID:<%=session.getId() %> <br>
是否新会话:<%=session.isNew() %><br>
设置和获取属性对象:用户名 =
<%session.setAttribute("用户名","bing"); %>
<%=session.getAttribute("用户名") %><br>
<%
Date creationTime = new Date(session.getCreationTime());
Date accessedTime = new Date(session.getLastAccessedTime());
%>
会话创建时间:<%=creationTime %><br>
上次访问时间:<%=accessedTime %><br>
会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
<%session.setMaxInactiveInterval(12); %>
修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
<%session.invalidate(); %>
</b>
</body>
</html>
发表评论
-
Jasper报表工具经验总结
2020-07-16 12:58 01、JasperFillManager.fillReport执 ... -
在BootStrap的modal中使用Select2
2019-03-08 21:29 657在普通页面中使用Select2是正常的,但是在Modal中使用 ... -
固定table表头
2016-06-21 09:11 676<!doctype html public " ... -
获得浏览器版本信息
2016-06-16 10:36 626<script type="text/java ... -
用于获取系统版本
2016-06-15 18:06 653<script type="text/java ... -
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2016-05-31 17:04 1493td 内容自动换行 table表格td设置宽度后文字太多自动换 ... -
java中的日期比较大小
2015-05-27 12:44 1151方法一: DateFormat fmt = new Simpl ... -
java日期处理(转)
2015-05-13 08:38 528/** 日期类 * @date ... -
java compiler level does not match the version of the installed java project fac
2015-05-08 13:21 512右键项目“Properties”,在弹出的“Propertie ... -
Unsupported major.minor version 51.0解决办法
2015-05-08 12:57 908解决方法:打开exclipse中项目上的属性—java co ... -
base64加密解密
2015-05-08 12:21 1031package test; import su ... -
BASE64Encoder 加密找不到jar包
2015-05-08 12:20 1537直接用ctrl+shift+o快捷键引入包失败,解决办法 ... -
更改SYBASE默认字符集为CP936
2015-04-18 11:46 1665更改SYBASE默认字符集为CP936 注意:更改字 ... -
JTDS和JDBC连接Sybase数据库
2015-04-17 19:09 1969JTDS是一个开放源代码的100%纯Java的,用于JDBC ... -
Jdbc方式连接Sybase数据库入门
2015-04-17 19:05 2463public class JdbcConnSybase { ... -
JDBC链接数据库(转载)
2015-04-17 19:02 6651、链接Sqlserver2000 驱动类 com.micr ... -
proxool连接池介绍
2015-04-14 14:12 714继前两文介绍了dbcp、c3p0的使用,本文准备再介绍另一个连 ... -
c3p0配置介绍
2015-04-14 14:11 756继上一篇介绍dbcp的配置 ... -
apache-DBCP基本配置介绍
2015-04-14 14:10 581apache-DBCP基本配置介绍 ... -
proxool连接池配置详细说明(转)
2015-04-14 08:33 1588目前市面上三个主流连接池从性能上排名如下:proxool> ...
相关推荐
2. 使用`session.setAttribute("loginTime", new Date())`将当前日期和时间(Java中的`Date`对象)存储在Session中,键为"loginTime"。 3. 每当用户访问新的页面时,检查Session中的"loginTime",以获取登录时间。 ...
- **Session的优势**:相比于其他状态管理技术,Session能够提供更强大的功能,例如支持跨多个页面的数据共享,以及提供更高级的安全性控制。 #### 九、Session的注意事项 - **安全性**:Session ID应具有足够的...
在Java Web开发中,Session是服务器端用于跟踪用户状态的一种机制。当用户通过用户名和密码登录系统后,服务器需要一种方式来识别这个已验证的用户,以便在后续的请求中提供个性化的服务,例如访问权限控制。这时,...
1. **并发处理**:在高并发环境下,多个线程同时进行Session增加或减少操作时,如果不进行同步控制,可能会出现计数错误。Java提供了synchronized关键字以及Lock接口(如ReentrantLock)来实现线程安全,确保在并发...
方法一: 在后台应用程序中设置:Session.Timeout = 1; 注意:1、此方法可以设置在一个... 您可能感兴趣的文章:php 如何设置一个严格控制过期时间的sessionjava设置session过期时间的实现方法php中实现精确设置se
此外,合理设置Session的过期时间,避免过多的会话占用服务器资源。还可以通过缓存策略减少数据库访问,提高系统性能。 7. **测试和部署**:开发完成后,需要进行单元测试、集成测试和压力测试,确保系统功能完整且...
通过Java代码设置Session的过期时间,例如在主页面或公共页面中加入以下代码: ```java HttpSession ses = request.getSession(); ses.setMaxInactiveInterval(900); // 设置900秒后过期,即15分钟 ``` 这里的...
具体来说,可以在控制器(Controller)层处理Session的清除逻辑,而不是直接在JSP页面中编写相关代码。 #### 其他注意事项 除了上述介绍的方法之外,还有一些其他方面的注意事项: - **禁用缓存**:为了防止因...
Java Memcached-Session配置在Tomcat环境中主要用于将Web应用程序中的用户会话数据持久化到分布式缓存系统Memcached中,从而提高系统的可扩展性和性能。Memcached是一个高性能、分布式的内存对象缓存系统,用于在...
Java作为一种广泛使用的服务器端编程语言,提供了多种方法来控制页面刷新频率,其中最常用的是通过session管理和JavaScript结合的方式。 #### 1. Session管理 Session是存储特定用户会话所需的属性及配置信息的一...
在实际应用中,Session的生命周期可以通过设置最大非活动间隔(Max Inactive Interval)来控制。该参数定义了从最后操作Session到Session自动过期的时间间隔。如果在此期间内没有对Session进行任何操作,则Session将...
这个接口提供了丰富的API来控制Session的创建、修改和销毁。 ##### 创建Session 当用户首次访问网站时,服务器会自动创建一个Session对象。如果用户已经存在一个Session,则服务器会复用之前的Session。 ```java ...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
- 可以设置session超时,或者使用Remember-Me服务让用户在一定时间内无须重新登录。 6. **密码编码与哈希**: - 为了保护用户密码,应将其存储为哈希值而非明文。Java提供了`BCryptPasswordEncoder`或`Pbkdf2...
1. **设置Session超时时间**:在服务器端,可以通过配置Web服务器或应用服务器的Session超时时间来控制Session的生命周期。例如,在Java Web应用中,可以在web.xml配置文件中设定`<session-config>`的`<session-time...
你可以通过`session.setMaxInactiveInterval(int interval)`设置session的有效时间,单位为秒。 5. **清理session**:当不再需要session中的数据或者想要结束用户会话时,应清除session中的数据或直接 invalidated...
5. **过期策略**:Redis支持设置过期时间,项目可能利用这一特性为每个Session设置生命周期。当Session超时,Redis中的相应键会自动删除,从而实现Session的自动清理。 6. **并发控制**:在多线程环境下,访问Redis...
- **生命周期管理**:理解`session`的生命周期,合理设置`session`的超时时间,避免不必要的资源占用。 总之,通过Struts自定义标签结合`session`的使用,可以使Web应用的开发变得更加灵活高效。开发者可以根据具体...
SpringMVC的Session拦截器是提高应用安全性、控制访问权限的有效工具。通过自定义拦截器,开发者可以在不修改业务逻辑的情况下,轻松地增加对Session的验证,确保每个请求都符合预期的上下文。在实际项目中,结合...
在Java Web应用中,用户的登录状态是通过Session来维护的。当用户成功登录后,服务器会创建一个Session对象,并将用户信息存储在其中,然后将Session ID返回给客户端(通常是浏览器)作为Cookie保存。之后,每次...