会话技术Cookie & Session_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 会话技术Cookie & Session

会话技术Cookie & Session

 2013/9/12 18:52:44  天上掉下个喜欢编程的榕哥哥  程序员俱乐部  我要评论(0)
  • 摘要:1.1、在WEB开发中什么是会话?当我们打开浏览器,在浏览器上访一个网站,不管在网站里点击多少个超链接、访问多少资源,一直到关闭浏览器,这一整个过程就是一个会话。1.2、会话中常需要解决的问题用户与服务器的交互会话过程中,每个用户都会存在自己的一些数据,例如登录后记住登录状态,用户访问过的资源信息、网上购物选购的商品信息.......对于某些会话数据,有时候程序必须想办法保存这些数据:①如用户在一个网站登录后不管再怎么刷新跳转,用户的基本信息一直存在,如果不想办法保存
  • 标签:Cookie 技术

?

1.1、在WEB开发中什么是会话?

? ? ? ? ?当我们打开浏览器,在浏览器上访一个网站,不管在网站里点击多少个超链接、访问多少资源,一直到关闭浏览器,这一整个过程就是一个会话。 ? 1.2、会话中常需要解决的问题 ? ? ? ? 用户与服务器的交互会话过程中,每个用户都会存在自己的一些数据,例如登录后记住登录状态,用户访问过的资源信息、网上购物选购的商品信息....... ? ? ? ?对于某些会话数据,有时候程序必须想办法保存这些数据

? ? ? ?① 如用户在一个网站登录后不管再怎么刷新跳转,用户的基本信息一直存在,如果不想办 ?

? ? ? ? ? ?法保存,每次刷新跳转都必须新去数据库取得该用户的信息,这样用户无法一直保持

? ? ? ? ? ?登录状态。???

? ? ? ?②?如用户在某个网站购物时,选购了几种不同的商品,如果这时候不想办法先保存用户选?

? ? ? ? ? ?购的所有商品信息(购物车用户则需要选购一种物品就得支付一次

? ? ? ?

1.3、保存会话数据的两种技术——cookie & session ? ?下面主要是本人自己的一些理解,使用的例子都较为基础,更多使用方法可以通过查阅API。 1.3.1、cookie 什么是cookie?

? ? ? ?cookie是一种客户端的技术,就是利用这种技术将一些用户信息以cookie形式的文件保存到用户各自的浏览器中(不服务器上),可以方便使用这些信息。

? ? ? ?cookie形式的文件其实一般就是一个txt文档,只是文档里以某种格式保存数据的。

? ? ? 适当的定义:一个cookie就是web服务器在用户电脑硬盘上存放的一段小文本信息,这个

? ? ? ? ? ? ? ? ? ? ? ? ?文本信息存储着一些“键-值”对,并可以在以后重新获取它。? ? ? ? ? ? ? ? ? ? ? ??

java中使用cookie:要导入javax.servlet.http.Cookie这个包 ? ? ? ? //1.添加一个cookie到客户端,

? ? ? public void addCookie( ){

//新建一个名为username的cookie,对应的值为hzh

? ? ? ? ? ? Cookie c1 = new Cookie("username","hzh");

//response来自HttpServletResponse向浏览器添加一个cookie,这里没有设置生命周期

? ? ? ? ? ? response.addCookie(c1);

//新建一个名为password的cookie,对应的值为123

? ? ? ? ? ?Cookie c2 = new Cookie("password","123"); ? ? ? ? ?c2.setMaxAge(3600); ? ??//设置生命周期为1小时,秒为单位 ? ? ? ? ?response.addCookie(c2);//向浏览器添加一个cookie ? ? ? } ? ? ?如果在添加cookie时没有设置生命周期,那这个cookie只存在客户端的内存中,并未写到硬盘文件中(如果客户端关闭?此浏览器窗口,就丢失了) ? ?如果设置了生命周期,那么就会将此cookie写到硬盘文件中,直到设置的生命周期结束才会失效。 ? //2.读取cookie文件 public void getCookies(){ ? ? ? ? ? ? ?Cookie[] cookies = request.getCookies(); ?//首先要取得浏览器上所有的cookie,返回一个数组 ? ? ? ? ? ? for(Cookie c :cookies ){ ? ? ? ? ? ? ? ? ? ? ?//遍历查找名为username的cookie

? ? ? ? ? ? ? ? ? if(c.getName().equals("username")){

//通过cookie的getName()和getValue()分别取得对应的cookie名和对应的值

? ? ? ? ? ? ? ? ? ? ? ? ?System.out.println(c.getName()+"--->"+c.getValue()); ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ?} ? //3.删除cookie文件,可以将cookie的生命周期设置为0,浏览器就会将其删除

public void deleteCookie(){

//如果要删除某个cookie,就重新建一个同名的cookie再设置其生命周期为0就行:

? ? ? ?Cookie c1 = new Cookie("username",null); ? ? ? ?c1.setMaxAge(0); ? ? ? ?response.addCookie(c1); ?

? ?}

?

1.3.2、session 什么是session?

session是一种服务器端的技术,利用这种技术能够在web服务器内存中为每一个用户与服务器

?的会话建立一个内存空间来保存会话数据信息。

? ? ? ?因为是保存在服务器的内存中,所以当会话结束(浏览器关闭),对应的session也会结束。 ? java中使用session:要导入javax.servlet.http.HttpSession这个包 //1.添加一个session到服务器 ? ? public void addSession(){ ? ? ? ? ? HttpSession session = request.getSession(); ? ? ? ? ? session.setAttribute("username","su"); //向服务器添加一个名为username的session ? ? ?} ? //2.获取一个session的值 ? ? public void getSession(){

? ? ? ? ? HttpSession session = request.getSession();

//一般取出来的是object所以要 强转类型

? ? ? ? ? String username =(String) session.getAttribute("username"); ? ? ?} ? //3.删除session ? ? public void deleteSession(){ ? ? ? ? ? HttpSession session = request.getSession(); ? ? ? ? ? session.removeAttribute("变量名");?//删除某个session
class="best-text mb-10"> ? ? ? ? ? session.invalidate(); //删除所有session
? ? ?}

?

发表评论
用户名: 匿名