Servlet会话跟踪技术

xiaoxiao2021-02-28  130

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

一、会话的概念

  会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个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、维持购物车这样的可连续操作的内容

转载请注明原文地址: https://www.6miu.com/read-60355.html

最新回复(0)