知识大全 JAVA中Session的会话状态
Posted 变量
篇首语:成功由大量的失误铸就。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JAVA中Session的会话状态相关的知识,希望对你有一定的参考价值。
JAVA中Session的会话状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
会话状态的维持是开发Web应用所必须面对的问题 有多种方法可以来解决这个问题 如使用Cookies hidden类型的表单域 或直接把状态信息加到URL中等 还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持 在这里我们主要介绍基于这个接口的会话状态的管理
Session的发明是为了填补HTTP协议的局限 请注意HTTP协议是如何工作的 用户发出请求 服务器作出响应 这种用户端和服务器 色色端的联系就是离散的 非连续的 HTTP协议不能提供允许服务器跟踪用户请求的功能 在服务器端完成响应用户的请求之后 服务器不能继续与该浏览器继续保持连接 从服务器这端来看 每一个请求都是独立的 因此HTTP协议被认为是无状态协议 当用户在多个主页间切换时 服务器无法知道他的身份 Session的出现就是为了弥补这个局限 利用Session 您就可以当一个用户在多个主页间切换的时候也能保存他的信息 这样很多以前根本无法去做的事情就变得简单多了
在访问者从到达某个特定的主页到离开为止的那段时间 每个访问者都会单独获得一个Session
Java Servlet定义了一个HttpSession接口 实现的Session的功能 在Servlet中使用Session的过程如下
( ) 使用HttpServletRequest的getSession方法得到当前存在的session 如果当前没有定义session 则创建一个新的session 还可以使用方法getSession(true)
( ) 写session变量 可以使用方法HttpSession setAttribute(name value)来向Session中存储一个信息 也可以使用HttpSession putValue(name value) 但这个方法已经过时了
( )读Session变量 可以使用方法HttpSession getAttribute(name)来读取Session中的一个变量值 如果name是一个没有定义的变量 那么返回的是null 需要注意的是 从getAttribute读出的变量类型是Object 必须使用强制类型转换 比如
String uid = (String) session getAttribute( uid );
也可以使用HttpSession getValue(name) 但是这个方法也已经过时了
( ) 关闭session 当时用完session后 可以使用session invalidate()方法关闭session 但是这并不是严格要求的 因为 Servlet引擎在一段时间之后 自动关闭seesion
下面举一个简单的例子说明session的使用
// 色色 SessionExample java
import java io *;
import java util *;
import javax servlet *;
import javax servlet *;
//导入必要的软件包
public class SessionExample extends HttpServlet
public void doGet(HttpServletRequest request HttpServletResponse response)
throws IOException ServletException //实现doGet方法
response setContentType( text/ ); //设置HTTP头
PrintWriter out = response getWriter(); //得到输出 gan
HttpSession session = request getSession(true);
//得到session对象
//打印HTML标记
out println( <> );
out println( <head> );
out println( <meta equiv=\\ Content Type\\ content=\\ text/; charset=gb \\ > );
out println( </head> );
out println( <body> );
Date created = new Date(session getCreationTime());
//得到session对象创建的时间
Date accessed = new Date(session getLastAccessedTime());
//得到最后访问该session对象的时间
out println( ID + session getId()+ <br> );
//得到该session的id 并打印
out println( Created: + created+ <br> );
//打印session创建时间
out println( Last Accessed: + accessed+ <br> );
//打印最后访问时间
session setAttribute( UID );
//在session中添加变量UID=
session setAttribute( Name Tom );
//在session中添加变量Name=Tom
Enumeration e = session getAttributeNames();
//得到session中变量名的枚举对象
while (e hasMoreElements()) //遍历每一个变量
String name = (String)e nextElement(); //首先得到名字
String value = session getAttribute(name) toString();
//由名字从 gan中得到值
out println(name + = + value+ <br> ); //打印
out println( </body> ); //打印HTML标记
out println( </> );
cha138/Article/program/Java/hx/201311/26058
相关参考
使用PHP会话(Session)实现用户登陆功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n
知识大全 一个用JAVA开发的会话密钥程序,可能对你有所帮助
一个用JAVA开发的会话密钥程序,可能对你有所帮助 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
用SQLServer保持会话状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在调用服务器后要
JBoss:有状态会话Bean及其多种调用方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一
JBoss下的EJB3开发无状态会话Bean 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java里设置session的几种方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于ses
知识大全 ASP.NET MVC 4框架揭秘:Controller的释放和会话状态行为的控制[2]
ASP.NETMVC4框架揭秘:Controller的释放和会话状态行为的控制[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的
知识大全 ASP.NET MVC 4框架揭秘:Controller的释放和会话状态行为的控制[1]
ASP.NETMVC4框架揭秘:Controller的释放和会话状态行为的控制[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的
ORACLE数据库除了可以保存永久表外还可以建立临时表temporarytables这些临时表用来保存一个会话SESSION的数据或者保存在一个事务中需要的数据当会话退出或者用户提交mit和回滚r
InProc StateServer SQLServer 第一种是我们经常用的第中就是使用一个名为stateserver的机器用它的内存来存放其他机器的session状态其实我们还可以在sq