java之 Cookie与Session小应用
2017-01-21 00:10
363 查看
1 案例一:记录用户的上次登陆访问时间.
1.1 需求:
用户登录完成后,显示您是第x位访问的用户,您的上次访问时间是:yyyy-MM-dd.
* 如果第一次访问的话,只显示您是第x位用户.
* 如果不是第一次访问的话,显示您是第x位访问的用户,您的上次访问时间是:yyyy-MM-dd.
1.2 分析:
1.2.1 技术分析:
【会话技术】
什么是会话:用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
常见的会话技术:
* Cookie :将数据保存到客户端浏览器.
* Session :将数据保存到服务器端.
为什么使用会话技术?
* 私有的数据,购物信息数据保存在会话技术中.
参见图一和图二
使用会话技术:
【Cookie技术的使用】
向浏览器保存数据:
HttpServletResponse有一个方法:
* void addCookie(Cookie cookie);
获得浏览器带过来的Cookie:
HttpServletRequest有一个方法:
* Cookie[] getCookies();
创建一个Cookie对象:
* Cookie(String name,String value);
【JSP的简单概述】
什么是JSP :Java Server Pages(Java服务器端页面).JSP = Java代码 + HTML的元素 + JSP内置东西
SUN公司为什么推出JSP动态网页开发技术:
* SUN公司推出的Servlet技术进行动态网页开发.发现Servlet自身有不足没有办法与ASP,PHP技术竞争.想在动态网页中输出表单.在Servlet中获得PrintWriter out = response.getWriter();
* out.println(“<form action=’’ method=’’>”);
* out.println(“</form>”);
* SUN又推出了动态的网页开发技术就是JSP.
JSP的执行过程:
* JSP会被翻译成Servlet,编译成class进行执行的.
JSP的嵌入Java代码:JSP的脚本元素
* <%! %>:翻译成类中的成员部分. 定义变量,定义方法,定义类.Servlet是线程不安全的,尽量少在类中定义成员属性!!
* <% %>:翻译成类的service方法内部的内容. 定义变量,定义类,直接写代码块.
* <%= %>:翻译成service方法内部的out.print();
1.2.2 步骤分析:
【步骤一】:准备登陆的案例.
【步骤二】:在统计人数的Servlet中.判断是否是第一次访问.
【步骤三】:根据是否是第一次显示不同的信息,同时将当前的时候保存到Cookie中.
1.3 代码实现
[Java] 纯文本查看 复制代码
?
1.4 总结:
1.4.1 Cookie的常用API:
Cookie的常用的API:
* getName();
* getValue();
* setDomain(String domain); -- 设置Cookie的有效域名. // www.baidu.com music.baidu.com
* setPath(String path); -- 设置Cookie的有效路径.
* setMaxAge(int maxAge); -- 设置Cookie的有效时间.
Cookie的分类有关:
* 会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
* 持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在. 手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.
2 案例二:记录用户的商品浏览记录:
2.1 需求:
在购物网站上浏览商品的信息,商家为了留住用户,记住之前浏览的一些商品.
2.2 分析:
2.2.1 步骤分析:
【步骤一】:在登录完成后,显示商品列表页面.
【步骤二】:为商品列表页面做一些准备工作.
【步骤三】:点击某个商品,将商品ID传递一个Servlet.
【步骤四】:在Servlet中:判断是否是第一次浏览商品
【步骤五】:如果是第一次:将商品的ID存入到Cookie中即可.
【步骤六】:如果不是第一次:判断该商品是否已经浏览了.
【步骤七】:如果浏览器过.删除之前元素,将该元素添加到最前面.
【步骤八】:如果没有浏览过该商品.判断最大长度,没有超过限制,直接加到最前,如果已经超过限制,删除最后一个,将其插入到最前.
2.3 代码实现:
[Java] 纯文本查看 复制代码
?
2.4 总结:
2.4.1 清空浏览记录:
删除持久性的Cookie:
[Java] 纯文本查看 复制代码
?
3 案例三:将商品添加到购物车:
3.1 需求:
查看某个商品详情的时候,添加到购物车.需要将商品添加到购物车.
3.2 分析:
1.4.2.1 技术分析:
【Session的概述】
Cookie本身是有大小和个数的限制.Session没有限制.Cookie的数据保存在客户端,Session数据保存在服务器端.
Session的执行原理:基于Cookie的.
使用Session:
* 获得Session:
* request.getSession();
3.2.2 步骤分析:
【步骤一】:点击加入购物车提交到Servlet
【步骤二】:在Servlet将购物的商品存入到Session中.
【步骤三】:可以创建一个Map集合用于保存购物信息Map的key可以是商品的名称,Map的value是数量.
【步骤四】:在购物车页面中显示Map中的数据就可以.
3.3 代码实现:
[Java] 纯文本查看 复制代码
?
3.4 总结:
3.4.1 Session是域对象:
session何时创建和销毁?作用范围:
* 创建:服务器端第一次调用getSession()创建session.
* 销毁:三种情况销毁session:
* 1.session过期. 默认过期时间为30分钟.
* 2.非正常关闭服务器.如果正常关闭session序列化到硬盘.
* 3.手动调用session.invalidate();
* 作用范围:多次请求.(一次会话)
4 案例四:进行一次性验证码的校验
4.1 需求:
在登录的页面中,需要有一个验证码的校验.
4.2 分析:
4.2.1 技术分析:
使用session保存生产的验证码.
4.2.2 步骤分析:
【步骤一】:生成验证码,将生成验证码的随机的4个字母或数字保存到session中.
【步骤二】:在页面中输入验证码值,点提交.
【步骤三】:在Servlet中从表单中获得验证码从session中获得一个验证码.
【步骤四】:比对两个验证码值是否一致.
【步骤五】:将session中保存的验证码清空.
4.3 代码实现:
[Java] 纯文本查看 复制代码
?
4.4 总结:
4.4.1 使用JS控制图片切换:
[JavaScript] 纯文本查看 复制代码
?
1.1 需求:
用户登录完成后,显示您是第x位访问的用户,您的上次访问时间是:yyyy-MM-dd.
* 如果第一次访问的话,只显示您是第x位用户.
* 如果不是第一次访问的话,显示您是第x位访问的用户,您的上次访问时间是:yyyy-MM-dd.
1.2 分析:
1.2.1 技术分析:
【会话技术】
什么是会话:用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话.
常见的会话技术:
* Cookie :将数据保存到客户端浏览器.
* Session :将数据保存到服务器端.
为什么使用会话技术?
* 私有的数据,购物信息数据保存在会话技术中.
参见图一和图二
使用会话技术:
【Cookie技术的使用】
向浏览器保存数据:
HttpServletResponse有一个方法:
* void addCookie(Cookie cookie);
获得浏览器带过来的Cookie:
HttpServletRequest有一个方法:
* Cookie[] getCookies();
创建一个Cookie对象:
* Cookie(String name,String value);
【JSP的简单概述】
什么是JSP :Java Server Pages(Java服务器端页面).JSP = Java代码 + HTML的元素 + JSP内置东西
SUN公司为什么推出JSP动态网页开发技术:
* SUN公司推出的Servlet技术进行动态网页开发.发现Servlet自身有不足没有办法与ASP,PHP技术竞争.想在动态网页中输出表单.在Servlet中获得PrintWriter out = response.getWriter();
* out.println(“<form action=’’ method=’’>”);
* out.println(“</form>”);
* SUN又推出了动态的网页开发技术就是JSP.
JSP的执行过程:
* JSP会被翻译成Servlet,编译成class进行执行的.
JSP的嵌入Java代码:JSP的脚本元素
* <%! %>:翻译成类中的成员部分. 定义变量,定义方法,定义类.Servlet是线程不安全的,尽量少在类中定义成员属性!!
* <% %>:翻译成类的service方法内部的内容. 定义变量,定义类,直接写代码块.
* <%= %>:翻译成service方法内部的out.print();
1.2.2 步骤分析:
【步骤一】:准备登陆的案例.
【步骤二】:在统计人数的Servlet中.判断是否是第一次访问.
【步骤三】:根据是否是第一次显示不同的信息,同时将当前的时候保存到Cookie中.
1.3 代码实现
[Java] 纯文本查看 复制代码
?
1.4.1 Cookie的常用API:
Cookie的常用的API:
* getName();
* getValue();
* setDomain(String domain); -- 设置Cookie的有效域名. // www.baidu.com music.baidu.com
* setPath(String path); -- 设置Cookie的有效路径.
* setMaxAge(int maxAge); -- 设置Cookie的有效时间.
Cookie的分类有关:
* 会话级别的Cookie:默认的Cookie.关闭浏览器Cookie就会销毁.
* 持久级别的Cookie:可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在. 手动销毁持久性Cookie. setMaxAge(0)---前提是有效路径必须一致.
2 案例二:记录用户的商品浏览记录:
2.1 需求:
在购物网站上浏览商品的信息,商家为了留住用户,记住之前浏览的一些商品.
2.2 分析:
2.2.1 步骤分析:
【步骤一】:在登录完成后,显示商品列表页面.
【步骤二】:为商品列表页面做一些准备工作.
【步骤三】:点击某个商品,将商品ID传递一个Servlet.
【步骤四】:在Servlet中:判断是否是第一次浏览商品
【步骤五】:如果是第一次:将商品的ID存入到Cookie中即可.
【步骤六】:如果不是第一次:判断该商品是否已经浏览了.
【步骤七】:如果浏览器过.删除之前元素,将该元素添加到最前面.
【步骤八】:如果没有浏览过该商品.判断最大长度,没有超过限制,直接加到最前,如果已经超过限制,删除最后一个,将其插入到最前.
2.3 代码实现:
[Java] 纯文本查看 复制代码
?
2.4.1 清空浏览记录:
删除持久性的Cookie:
[Java] 纯文本查看 复制代码
?
3.1 需求:
查看某个商品详情的时候,添加到购物车.需要将商品添加到购物车.
3.2 分析:
1.4.2.1 技术分析:
【Session的概述】
Cookie本身是有大小和个数的限制.Session没有限制.Cookie的数据保存在客户端,Session数据保存在服务器端.
Session的执行原理:基于Cookie的.
使用Session:
* 获得Session:
* request.getSession();
3.2.2 步骤分析:
【步骤一】:点击加入购物车提交到Servlet
【步骤二】:在Servlet将购物的商品存入到Session中.
【步骤三】:可以创建一个Map集合用于保存购物信息Map的key可以是商品的名称,Map的value是数量.
【步骤四】:在购物车页面中显示Map中的数据就可以.
3.3 代码实现:
[Java] 纯文本查看 复制代码
?
3.4.1 Session是域对象:
session何时创建和销毁?作用范围:
* 创建:服务器端第一次调用getSession()创建session.
* 销毁:三种情况销毁session:
* 1.session过期. 默认过期时间为30分钟.
* 2.非正常关闭服务器.如果正常关闭session序列化到硬盘.
* 3.手动调用session.invalidate();
* 作用范围:多次请求.(一次会话)
4 案例四:进行一次性验证码的校验
4.1 需求:
在登录的页面中,需要有一个验证码的校验.
4.2 分析:
4.2.1 技术分析:
使用session保存生产的验证码.
4.2.2 步骤分析:
【步骤一】:生成验证码,将生成验证码的随机的4个字母或数字保存到session中.
【步骤二】:在页面中输入验证码值,点提交.
【步骤三】:在Servlet中从表单中获得验证码从session中获得一个验证码.
【步骤四】:比对两个验证码值是否一致.
【步骤五】:将session中保存的验证码清空.
4.3 代码实现:
[Java] 纯文本查看 复制代码
?
4.4.1 使用JS控制图片切换:
[JavaScript] 纯文本查看 复制代码
?
相关文章推荐
- [Java]Session,Cookie知识与应用
- Java应用技巧:对于 Cookie 的操作详解
- Java中应用Filter对权限和Session控制
- 解决访问不同的站点iframe应用session丢失(cookie丢失的问题)的问题
- asp.net中购物车的两种存储方式Session和Cookie的应用实例
- asp.net中购物车的两种存储方式Session和Cookie的应用实例
- 几个实用的Servlet应用例子-cookie、session及上传文件
- java Web开发——Session和Cookie的深入研究
- X-Java:http,session,cookie详解
- [网络收集]asp.net中购物车的两种存储方式Session和Cookie的应用实例
- java中的Cookie 和 Session
- [Java] 使用cookie保持Session (Axis2 和 WSIT)
- Java中应用Filter对权限和Session控制
- JAVA通过Session和Cookie实现网站自动登录的技术
- Java cookie和session介绍与区别
- Java应用技巧:对于 Cookie 的操作详解
- 几个实用的Servlet应用例子-入门、cookie、session及上传文件
- cookie与session学习之六--cookie的一些应用
- 详解Java中Cookie与Session的区别
- [网络收集]asp.net中购物车的两种存储方式Session和Cookie的应用实例