- 浏览: 52362 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
hold_on:
照你说的;第一步就connect:newwork is unr ...
VMware中用NAT方式实现FreeBsd/Linux上网 -
myliangxi:
好文章,学习一下。
八个DOS命令 -
qlzgg:
很好,我收下了,以便日后备用
B/S开发中经常用到的javaScript技术 -
lfsfxy9:
一些优秀的小开源项目
会话状态的维持是开发Web应用所必须面对的问题,有多种方法可以来解决这个问题,如使用Cookies,hidden类型的表单域,或直接把状态信息加到URL中等,还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持,在这里我们主要介绍基于这个接口的会话状态的管理。
Session的发明是为了填补HTTP协议的局限。请注意HTTP协议是如何工作的--用户发出请求,服务器作出响应,这种用户端和服务器97色色端的联系就是离散的,非连续的。HTTP协议不能提供允许服务器跟踪用户请求的功能。在服务器端完成响应用户的请求之后,服务器不能继续与该浏览器继续保持连接。从服务器这端来看,每一个请求都是独立的,因此HTTP协议被认为是无状态协议,当用户在多个主页间切换时,服务器无法知道他的身份。 Session的出现就是为了弥补这个局限。利用Session,您就可以当一个用户在多个主页间切换的时候也能保存他的信息。这样很多以前根本无法去做的事情就变得简单多了。
在访问者从到达某个特定的主页到离开为止的那段时间,每个访问者都会单独获得一个Session。
Java Servlet定义了一个HttpSession接口,实现的Session的功能,在Servlet中使用Session的过程如下:
(1) 使用HttpServletRequest的getSession方法得到当前存在的session,如果当前没有定义session,则创建一个新的session,还可以使用方法getSession(true)
(2) 写session变量。可以使用方法HttpSession.setAttribute(name,value)来向Session中存储一个信息。也可以使用HttpSession.putValue(name,value),但这个方法已经过时了。
(3)读Session变量。可以使用方法HttpSession.getAttribute(name)来读取Session中的一个变量值,如果name是一个没有定义的变量,那么返回的是null。需要注意的是,从getAttribute读出的变量类型是Object,必须使用强制类型转换,比如:
String uid = (String) session.getAttribute("uid");
也可以使用HttpSession.getValue(name),但是这个方法也已经过时了。
(4) 关闭session,当时用完session后,可以使用session.invalidate()方法关闭session。但是这并不是严格要求的。因为,Servlet引擎在一段时间之后,自动关闭seesion。
下面举一个简单的例子说明session的使用
//97色色 SessionExample.java
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
//导入必要的软件包
public class SessionExample extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException //实现doGet方法
{
response.setContentType("text/html"); //设置HTTP头
PrintWriter out = response.getWriter(); //得到输出97gan
HttpSession session = request.getSession(true);
//得到session对象
//打印HTML标记
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
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","12345678");
//在session中添加变量UID=12345678
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();
//由名字从97gan中得到值
out.println(name + " = " + value+"<br>"); //打印
}
out.println("</body>"); //打印HTML标记
out.println("</html>");
}
}
}
Session的发明是为了填补HTTP协议的局限。请注意HTTP协议是如何工作的--用户发出请求,服务器作出响应,这种用户端和服务器97色色端的联系就是离散的,非连续的。HTTP协议不能提供允许服务器跟踪用户请求的功能。在服务器端完成响应用户的请求之后,服务器不能继续与该浏览器继续保持连接。从服务器这端来看,每一个请求都是独立的,因此HTTP协议被认为是无状态协议,当用户在多个主页间切换时,服务器无法知道他的身份。 Session的出现就是为了弥补这个局限。利用Session,您就可以当一个用户在多个主页间切换的时候也能保存他的信息。这样很多以前根本无法去做的事情就变得简单多了。
在访问者从到达某个特定的主页到离开为止的那段时间,每个访问者都会单独获得一个Session。
Java Servlet定义了一个HttpSession接口,实现的Session的功能,在Servlet中使用Session的过程如下:
(1) 使用HttpServletRequest的getSession方法得到当前存在的session,如果当前没有定义session,则创建一个新的session,还可以使用方法getSession(true)
(2) 写session变量。可以使用方法HttpSession.setAttribute(name,value)来向Session中存储一个信息。也可以使用HttpSession.putValue(name,value),但这个方法已经过时了。
(3)读Session变量。可以使用方法HttpSession.getAttribute(name)来读取Session中的一个变量值,如果name是一个没有定义的变量,那么返回的是null。需要注意的是,从getAttribute读出的变量类型是Object,必须使用强制类型转换,比如:
String uid = (String) session.getAttribute("uid");
也可以使用HttpSession.getValue(name),但是这个方法也已经过时了。
(4) 关闭session,当时用完session后,可以使用session.invalidate()方法关闭session。但是这并不是严格要求的。因为,Servlet引擎在一段时间之后,自动关闭seesion。
下面举一个简单的例子说明session的使用
//97色色 SessionExample.java
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
//导入必要的软件包
public class SessionExample extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException //实现doGet方法
{
response.setContentType("text/html"); //设置HTTP头
PrintWriter out = response.getWriter(); //得到输出97gan
HttpSession session = request.getSession(true);
//得到session对象
//打印HTML标记
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
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","12345678");
//在session中添加变量UID=12345678
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();
//由名字从97gan中得到值
out.println(name + " = " + value+"<br>"); //打印
}
out.println("</body>"); //打印HTML标记
out.println("</html>");
}
}
}
发表评论
-
利用XML配置实现增删改查的思路总结
2011-09-29 21:22 661利用XML配置实现增删改查,说白了就是将需要执行的SQL和 ... -
职场精英取得成功的法则与捷径
2011-09-29 21:20 619年轻人在30岁之前成功的方法有很多,但是成功的法则却出 ... -
简单介绍J2EE应用的五种核心策略
2011-08-30 20:19 607对于J2EE,我们知道当开发应用时,在架构设计阶段的决定将 ... -
四招自我营销术帮你快速升职
2011-08-30 20:15 461美国前第一夫人希 ... -
四大JavaEE容器之简单比较
2011-07-30 21:18 555现在流行的Java EE容器有 ... -
人生职业生涯的五个黄金阶段
2011-06-30 21:45 759人生的职业生涯是很漫 ... -
辞职前后的七种心理疗伤方法
2010-08-28 23:05 676我们都是情感动物,尤其在这个变革的年代。“AnneHartma ... -
JAVA中用递归函数来删除子目录
2010-06-19 18:10 693import java.io.File; ... -
JBPM4与Spring整合的2种方式
2010-06-19 18:05 693第一种:手工将SessionFactory放入jBPM ... -
正则表达式4种常用功能
2010-05-23 22:09 582正则表达式在字符串处 ... -
成功的项目团队Winning Project Teams
2010-05-23 22:01 550By Russ Finney (来自软件工程论坛 sefor ... -
软件开发:需求分析的20条法则
2010-05-23 21:51 532邢学慧/(IT经理世界) 对商业用户来说,他们后面是成百上千 ... -
B/S开发中经常用到的javaScript技术
2010-05-23 21:48 872一、验证类 1、数字验证内 1.1 整数 1.2 大于 ... -
一些优秀的小开源项目
2010-05-23 21:44 781Jettison http://jettison.code ... -
八个DOS命令
2010-05-16 20:52 879一,ping 它 ... -
小开源项目
2009-11-30 22:22 552Jettison http://jettison.code ... -
MyEclipse使用之应用指南
2009-09-26 03:08 971MyEclipse使用之一:改变M ... -
JAVA正则表达式4种常用功能
2009-03-04 21:14 63正则表达式在字符串处 ... -
学习Java的30个目标
2009-03-04 19:33 7811.你需要精通面向对象 ...
相关推荐
Java EJB中有、无状态SessionBean的两个例子,的无状态SessionBean可,会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等; 在有状态SessionBean中,用累加...
Java SessionBean状态判断的例子,代码包中的两个实例,分别对无状态SessionBean和有状态SessionBean进行了演示,请注意,Home对象是EJB对象的制作生成库,该方法生成EJB对象,value参数用于计数器的初始化,在无状态...
试验题目:无状态Session Bean组件的开发与应用。 试验目的:通过对简单无状态会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。...在实验报告中,记录关键性的java代码、xml代码和测试结果。
NULL 博文链接:https://diaochenlong2.iteye.com/blog/1846828
在采用C/S模式开发的时候,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易,这就需要在这几次交互过程中保持会话状态。本文就JAX-WS技术讨论了如何在多个WebService调用之间保持会话状态,并给出了具体...
试验题目:Session Bean组件的开发与应用。 试验目的:通过对简单会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。...在实验报告中,记录关键性的java代码、xml代码和测试结果。 试验步骤:
客户端会话在req.clientSession ,类似于 connect/express 中常规会话状态的req.session 。 如果你有一些应该可以在客户端访问的会话状态,但你不想在返回服务器时接受任何信息修改,你可以将它存储在req.session并...
如此一来,服务器只要在接到用户请求时候,就可以拿到jsessionid,并根据这个ID在内存中找到对应的会话session,当拿到session会话后,那么我们就可以操作会话了。会话存活期间,我们就能认为用户一直处
if (json.statusCode == 301) { //301 状态表示 session timeout popLoginWin(); }else if (json.statusCode == 300) { //300 状态表示 操作失败 alertMsg.error(json.message); } else if...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...
会话Bean必须实现SessionBean,生成EJB对象,value参数用于计数器的初始化,在无状态会话Bean中不能带参数。本例子中EJB对象使用完毕,将从内存中清除。 创建具有3个Count EJB对象的数组 jndi配置,硬编码到java中...
Java Web使用Session来跟踪会话和管理会话内的状态。 Session对象是一个jsp内置对象,它在第一个jsp页面被装载时自动创建,完成会话期管理。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加...
2-3-3 session——保持访问者的会话状态 2-3-4 JSP其它基本内置对象 2-4 用JSP开发Web应用的几种主要方式 2-4-1 直接使用JSP 2-4-2 JSP + JavaBeans .......................................