Servlet会话跟踪技术

前面引用一些大纵、通俗易懂的描述。笔记贴,有错还请提出,互相进步,谢谢。

一、会话的概念

  会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
  有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,这称之为有状态会话。

二、会话过程中要解决的一些问题?

  每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。

三、保存会话数据的两种技术

Cookie 、Session

Cookie:是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

Session:是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于 session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它 web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

四、Cookie类的主要方法

Cookie(String name, String value)描述:实例化Cookie对象,传入cooke名称
public String getName() 描述:取得Cookie的名字
public String getValue() 描述:取得Cookie的值
public void setValue(String newValue) 描述:设置Cookie的值
public void setMaxAge(int expiry)描述:设置Cookie的最大保存时间
public void setPath(String uri) 描述:设置cookie的有效路径
public void setDomain(String pattern)描述: 设置cookie的有效域
详细细节阅读java中javax.servlet.http.Cookie

五、Cookie类使用范例

//获取会话信息
Cookie[] cookies = request.getCookies();
if(cookies!=null) {
for (Cookie cookie : cookies) {
//打印cookie信息 response.getWriter().println(cookie.getName()+”:”+URLDecoder.decode(cookie.getValue()));
}
//获取session信息
response.getWriter().println(“——session信息————–);
response.getWriter().print(request.getSession().getAttribute(“info”));
response.getWriter().println(request.getSession().getId());

//Cookie实现会话跟踪
//写cookie
Cookie cookie =new Cookie(“info”, URLEncoder.encode(name));
cookie.setMaxAge(-1);//有效时间0代表删除,-1永久有效,或者以秒为单位的int
response.addCookie(cookie);

//session会话跟踪
HttpSession session = request.getSession();
session.setAttribute(“info”, name);
response.sendRedirect(“view.do”);

六、关于Cookie和Session的问题

一、描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。如果客户在浏览器上禁用了cookie,如何做会话跟踪?
回答:Cookie是浏览器端技术,将会按照服务端响应的指示(response.addCookie(new Cookie(k,v)))把cookie键值对存储在本地(和网址关联的),且在随后的访问中把cookie添加到请求header中发送给服务器。

Seesion是服务端,web容器当中的一个容器,存储在服务器端的内存里面,用来进行会话跟踪的,同一个客户端的多个请求将映射到同一个session。典型的应用:1、存储用户的登录状态 2、维持购物车这样的可连续操作的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值