同一用户的不同页面共享数据
2016-01-29 15:27
585 查看
四种方法:
1.cookie技术
什么是cookie?
服务器在客户端保存用户的信息,比如登录名、密码……就是cookie。这些信息就像是小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取。
cookie可以用来做什么?
1.保存用户名、密码,在一定时间不用重新登录
2.记录用户访问网站的喜好,比如有无背景音乐、网页的背景色是什么
3.网站的个性化,比如定制网站的服务、内容
cookie使用
1.cookie有点像一张表,分两列,一个是名字,一个是值,数据类型都是String
2.如何创建一个cookie(在服务器端创建的)
Cookiec=new Cookie(String name, Stringval);
3.如何将一个cookie添加到客户端
response.addCookie(c);
4。如何读取cookie(从客户端读到服务器)
request.getCookie();
cookie其它说明
1.可以通过IE——工具——internet选项——隐私——高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的,因此安全性不高
3.cookie信息的生命周期可以在创建时设置(比如30s),从创建那一时刻起,就开始计时,到时该cookie的信息就无效了。
4.session技术
什么是session?
当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被这个浏览器独占。这个空间就是session空间,该空间中的数据默认存在时间为30min,你也可以修改该值。
session可以用来做什么?
1.网上商城中的购物车
2.保存登陆用户的信息
3.将某些数据放入到session中,供同一用户的各个方面使用
4.防止用户非法登陆到某个页面
如何理解session?
c326
可以把session看做一张表,这张表有两列,而表有多少行理论上没有限制,每一行就是session的一个属性。每个属性包含有两个部分,一个是该属性的名字String,另外一个是它的值Object。
如何使用session?
1.得到session
HttpSession hs=request.getSession(true);
2.向session添加属性
hs.setAttribute(Stringname,Objectval);
3.从session得到某个属性
Stringname=hs.getAttribute(Stringname);
4.从session中删除掉某个属性
hs.removeAttribute(Stringname);
5.注销session中的内容(比较安全的一种方式)
ht.setMaxInactiveInterval(0);
session的注意事项:
1.session中属性存在的默认时间是30min,你也可修改它存在的时间:(a)修改web.xml (b)在程序中修改
2.上面说的这个30min指的是用户的发呆时间,而不是累计时间
3.当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的sessionid,并以此来区分不同的浏览器(即客户端)
4.因为session的各个属性要占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用
1.cookie技术
什么是cookie?
服务器在客户端保存用户的信息,比如登录名、密码……就是cookie。这些信息就像是小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取。
cookie可以用来做什么?
1.保存用户名、密码,在一定时间不用重新登录
2.记录用户访问网站的喜好,比如有无背景音乐、网页的背景色是什么
3.网站的个性化,比如定制网站的服务、内容
cookie使用
1.cookie有点像一张表,分两列,一个是名字,一个是值,数据类型都是String
2.如何创建一个cookie(在服务器端创建的)
Cookiec=new Cookie(String name, Stringval);
3.如何将一个cookie添加到客户端
response.addCookie(c);
4。如何读取cookie(从客户端读到服务器)
request.getCookie();
cookie其它说明
1.可以通过IE——工具——internet选项——隐私——高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的,因此安全性不高
3.cookie信息的生命周期可以在创建时设置(比如30s),从创建那一时刻起,就开始计时,到时该cookie的信息就无效了。
//如何创建cookie案例 package com.CookieTest; import javax.servlet.http.*; import java.io.*; public class CookieTest1 extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try { res.setContentType("text/html;charset=gbk"); PrintWriter pw=res.getWriter(); //当用户访问该servlet时, 就将信息创建到该用户的cookie中 //1. 现在服务器端创建一个cookie Cookie myCookie=new Cookie("color1","red"); //2. 该cookie存在的时间 myCookie.setMaxAge(30); //如果你不设置存在时间,那么该cookie将不会保存 //3. 将该cookie写回到客户端 res.addCookie(myCookie); pw.println("已经创建了cookie"); } catch (Exception ex) { ex.printStackTrace(); } } }
//如何读取cookie案例 package com.CookieTest; import javax.servlet.http.*; import java.io.*; public class CookieTest2 extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try { res.setContentType("text/html;charset=gbk"); PrintWriter pw=res.getWriter(); //从客户端得到所有cookie信息 Cookie [] allCookies=req.getCookies(); int i=0; //如果allCookies不为空... if(allCookies!=null){ //从中取出cookie for(i=0;i<allCookies.length;i++){ //依次取出 Cookie temp=allCookies[i]; if(temp.getName().equals("color1")){ //得到cookie的值 String val=temp.getValue(); pw.println ("color1="+val); break; } } if(allCookies.length==i){ pw.println("cookie 过期"); } }else{ pw.println ("不存在color1这个cookie/或是过期了!"); } } catch (Exception ex) { ex.printStackTrace(); } } }
//如何删除cookie案例 package com.CookieTest; import javax.servlet.http.*; import java.io.*; public class CookieTest3 extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try { res.setContentType("text/html;charset=gbk"); PrintWriter pw=res.getWriter(); //从客户端得到所有cookie信息 Cookie [] allCookies=req.getCookies(); int i=0; //如果allCookies不为空... if(allCookies!=null){ //从中取出cookie for(i=0;i<allCookies.length;i++){ //依次取出 Cookie temp=allCookies[i]; if(temp.getName().equals("color1")){ //将该cookie删除 temp.setMaxAge(0); pw.println("删除了color1这个cookie"); break; } } } } catch (Exception ex) { ex.printStackTrace(); } } }
4.session技术
什么是session?
当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被这个浏览器独占。这个空间就是session空间,该空间中的数据默认存在时间为30min,你也可以修改该值。
session可以用来做什么?
1.网上商城中的购物车
2.保存登陆用户的信息
3.将某些数据放入到session中,供同一用户的各个方面使用
4.防止用户非法登陆到某个页面
如何理解session?
c326
可以把session看做一张表,这张表有两列,而表有多少行理论上没有限制,每一行就是session的一个属性。每个属性包含有两个部分,一个是该属性的名字String,另外一个是它的值Object。
如何使用session?
1.得到session
HttpSession hs=request.getSession(true);
2.向session添加属性
hs.setAttribute(Stringname,Objectval);
3.从session得到某个属性
Stringname=hs.getAttribute(Stringname);
4.从session中删除掉某个属性
hs.removeAttribute(Stringname);
5.注销session中的内容(比较安全的一种方式)
ht.setMaxInactiveInterval(0);
session的注意事项:
1.session中属性存在的默认时间是30min,你也可修改它存在的时间:(a)修改web.xml (b)在程序中修改
2.上面说的这个30min指的是用户的发呆时间,而不是累计时间
3.当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的sessionid,并以此来区分不同的浏览器(即客户端)
4.因为session的各个属性要占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用
<span style="font-size:14px;">//session 案例---如何得到session/和在session中添加属性 package com.SessionTest; import javax.servlet.http.*; import java.io.*; public class SessionTest1 extends HttpServlet { //处理get请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑 try { //中文乱码 res.setContentType("text/html;charset=utf-8"); PrintWriter pw=res.getWriter(); //得到和req相关联的session,如果没有就创建session HttpSession ht=req.getSession(true); //得到session 的id,这是由容器分配的 String sessionId=ht.getId(); pw.println("sessionTest1 的session id="+sessionId+"<br>"); //向session中添加一个属性(String 类型的) ht.setAttribute("name","韩顺平"); //如果不指定时间,那么该session的有效期是30min //你也可以指定时间,30s ht.setMaxInactiveInterval(30); pw.println("在session中放入了一个属性 name=韩顺平"); } catch (Exception ex) { ex.printStackTrace(); } } //处理post请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } } //猫类 //class Cat{ // private String name; // private int age; // public Cat(String name,int age){ // this.name=name; // this.age=age; // } // public String getName(){ // return this.name; // } // public int getAge(){ // return this.age; // } //} // //向session中添加一个属性(Vector v) // Cat myCat=new Cat("xiaoming",34); // ht.setAttribute("maomao",myCat); // pw.println("在session中放入一只猫 <br>");</span>
//session 案例---如何得到session package com.SessionTest; import javax.servlet.http.*; import java.io.*; public class SessionTest2 extends HttpServlet { //处理get请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑 try { //中文乱码 res.setContentType("text/html;charset=utf-8"); PrintWriter pw=res.getWriter(); //得到和req相关联的session,如果没有就创建session HttpSession ht=req.getSession(true); //得到session 的id String sessionId=ht.getId(); pw.println("sessionTest2 的session id="+sessionId); //得到session中的某个属性 String myName=(String)ht.getAttribute("name"); pw.println("name="+myName); } catch (Exception ex) { ex.printStackTrace(); } } //处理post请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } } // //得到session中的某个属性 // String myName=(String)ht.getAttribute("name"); // pw.println("name="+myName); // // //得到猫 // Cat myCat=(Cat)ht.getAttribute("maomao"); // pw.println("你的猫的名:"+myCat.getName()+"<br>"); // pw.println("你的猫的年龄:"+myCat.getAge()+"<br>");
//session 案例---如何删除属性/如何使得session无效 package com.SessionTest; import javax.servlet.http.*; import java.io.*; public class SessionTest3 extends HttpServlet { //处理get请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑 try { //中文乱码 res.setContentType("text/html;charset=utf-8"); PrintWriter pw=res.getWriter(); //得到和req相关联的session,如果没有就创建session HttpSession ht=req.getSession(true); //向session中添加一个属性(String 类型的) ht.setAttribute("you","周星星"); ht.setAttribute("he","刘德华"); pw.println("在没有删除you属性前 you 的 值="+ ht.getAttribute("you")+"<br>"); //从session中删除you属性 // ht.removeAttribute("you"); ht.setMaxInactiveInterval(0); pw.println("删除you属性后 you 的 值="+ ht.getAttribute("you")+"<br>"); pw.println("删除you属性后 he 的 值="+ ht.getAttribute("he")+"<br>"); } catch (Exception ex) { ex.printStackTrace(); } } //处理post请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } }
相关文章推荐
- Python变量访问范围
- linux下onvif协议gsoap实现的源码(测试编译成功版)
- Android中AlertDialog用法实例分析
- 基础六
- 新手学习opencv五:人脸检测
- java技术架构选型
- Animation动画详解(七)——ObjectAnimator基本使用
- 公交IC卡工作原理
- iOS加载Html文件时不能显示图片
- XUtils===XUtils3框架的基本使用方法(一)
- java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive
- Android ImageView的显示方式 (scaleType属性与adjustViewBounds属性)
- Animation动画详解(六)——ValueAnimator高级进阶(二)
- Java 序列化 (Serializable) 的作用
- 设计模式定义
- 学会用麦肯锡的方式思考
- 移动端设备UA检测
- linux网络服务
- js:Razor视图下服务器代码给Javascript变量赋值
- POJ 3614 Sunscreen