10 Cookie/Session
* SUN提供了开发WEB资源的技术 Servlet/JSP
* response.getWriter().write();
.write("<form action='' method='post' >");
.write("<input type='text' name='username'>");
* JSP(java server pages)
* JSP可以编写的代码
* HTML+java代码+JSP自身一些
* JSP的运行原理
* JSP -- 翻译成servlet -- 编译 -- 访问
* 创建简单JSP文件
* 打开方式
* 设置编码集
搜索jsp
* JSP脚本元素
* 编写java代码
* <%! %> :定义类、定义变量、定义方法(不经常使用) 成员变量
* <%= %> :输出内容
* <% %> :定义变量、编写语句 (局部变量)
* EL表达式
* 获取域对象中的值
* 两种会话技术
* 会话:从打开浏览器开始,点击链接(点击多次),访问服务器多个web资源,关闭浏览器,称为一次会话。
* 问题:
例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,商品保存会话对象中。
* requset和ServletContext保存商品信息行不行?
* cookie
* 保存用户名和密码
* 记录用户上次的访问
* 需求分析:
* 第一次访问,没有时间,输出欢迎,记录当前的时间,回写到浏览器。
* 第二次访问,有历史记录(时间),输出到页面上,记录当前的时间,回写到浏览器。
* 1.获取所有的cookie
* 2.通过指定的名称查找cookie(名称自己指定)
* * 如果cookie==null,第一次访问
* * 输出欢迎,记录当前的时间,回写到cookie中。
* * 不是第一次访问
* * 获取cookie中的时间,把时间显示到页面上
* * 记录当前时间,回写到cookie中
* Cookie的API
* 构造方法
* Cookie(String name, String value)
name:代表cookie的名称
* cookie提供的方法
* String getName() 获取cookie的名称
* String getValue() 获取值
* setMaxAge(int expiry) :设置保存的有效时间
* int:秒 long:毫秒
* setMaxAge(0);前提的条件:setPath路径相同
* setPath(String uri) :设置有效路径
* 默认路径 /day10 http://localhost/day10/cookie1
* 默认路径/day10/servlet/ http://localhost/day10/servlet/cookie1
* setDomain(String pattern) :设置有效域名
* 会话级别cookie
* 默认(关闭浏览器就消失。)
* 持久的cookie
* setMaxAge(int time) 磁盘上。
* 删除掉持久的cookie,设置setMaxAge(0),设置path必须一致。
* 记录用户的浏览记录
* 需求分析
* 商品列表页面(productList.jsp),点击商品信息,把这些信息记录下来。
* 点击商品,请求servlet,记录商品。回写到浏览器。
* 由点击商品,如果包含,不处理。如果不包含,商品放到cookie,回写到浏览器。
* 显示在列表页面上。
/**
* 1.接收参数
* 2.获取所有的cookie数组
* 3.判断是否是第一次访问
* * 第一次,记录商品的信息,回写到浏览器。
*
* * 不是第一次,获取cookie的值 (1,2,3)
* * 判断是否包含当前的商品的信息,如果不包含,拼接字符串,回写。
*
*/
* session
* 原理:
* 基于cookie,第一次访问的时候,在服务器创建session的区域,分配唯一的标识(id)。通过cookie技术,就可以找到区域。
* 简单购物车
* 前提条件:购物车(对象)Map<商品名称,商品数量>
/**
* 1.接收请求参数
* 2.从session中取购物车(map)
* 3.判断是否是第一次访问
* * 第一次,创建map对象,把商品的名称,和商品数量(1)存入map集合中。
* * 购物车存session中
*
* * 不是第一次
* * 判断购物车是否包含刚才的商品
* * 如果包含,取出数量,+1,存回去
* * 如果不包含,把商品名称和数量出入map集合中
*
* * 购物车存session中
*/
* session的追踪(了解)
* 手动的拼接jsessionid=B067A6EC847E918B94156458646F2FA4
* response. encodeRedirectURL(java.lang.String?url)
用于对sendRedirect方法后的url地址进行重写。
response. encodeURL(java.lang.String?url)
用于对表单action和超链接的url地址进行重写
* session的创建和失效
* session的创建:第一次访问的时候,创建session
* 销毁:
* invalidate() 销毁
* 非正常原因关闭服务器。
* session失效时间,默认是30分钟。
<session-config>
<session-timeout>30</session-timeout>
</session-config>
* 三个域对象
* ServletContext :整个web应用
* session :代表一次会话
* request :一次请求
setAttribute(xx,yy);
getAttribute(xx);
10 Cookie/Session的更多相关文章
- asp.net 10 Cookie & Session
Cookie 1.什么是Cookie 一小段文本,明文的数据,关于网站相关的文本字符串数据.一个客户端状态保持机制~ 存储在客户端的浏览器内存里面或者磁盘(如果不指定过期时间,那么存储在客户端浏览器内 ...
- Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- [转]Cookie/Session机制详解
原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用 ...
- Cookie/Session机制具体解释
会话(Session)跟踪是Web程序中经常使用的技术,用来跟踪用户的整个会话.经常使用的会话跟踪技术是Cookie与Session.Cookie通过在client记录信息确定用户身份,Session ...
- 会话Cookie及session的关系(Cookie & Session)
会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...
- Java web学习 Cookie&&Session
cookie&&session 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会 话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Coo ...
- Cookie&Session(会话技术)
一.Cookie技术 从打开一个游览器访问某个站点,到关闭这个游览器的整个过程成为一次会话 会话技术分为Cookie和Session Cookie:数据存储在客服端本地,减少对服务端的存储的压力,安全 ...
- Cookie Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- python Cookie Session 相关用法
Cookie一.前言1.http协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响 应情况直接影响,也不会直接影响后面的请 ...
随机推荐
- jQuery中 pageX,clientX,offsetX,layerX的区别
一.PageX和clientXPageX和clientX ,这个两个比较容易搞混,PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化.可以理解为:相对#(0.0 ...
- ecshop 后台分页功能
Ecshop分页规则,分以下几个步骤 1.点击类别,获取第一页获取默认分类列表数据 2.点击“下一页”,采用ajax调取分页内容 实例分析(比如订单列表分页admin/order.php) 1.先写一 ...
- ios几个重要方法
加载类到内存,程序刚启动的时候调用,调用在main函数之前 1.+(void)load{ } 初始化类,类第一次使用的时候调用一次 2.+(void)initialize{ } 控制器的视图架构,设 ...
- C/C++学习链接
C/C++堆和栈的区别:http://blog.csdn.net/hairetz/article/details/4141043
- C#使用Quartz.NET详细讲解
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...
- 【强烈推荐】如何给TortoiseGit 配置密钥?
TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥.也就是说使用 ssh-keygen -C "username@email.com" - ...
- 第2月第24天 coretext 行高
1.NSMutableAttributedString 行高 NSMutableAttributedString *attributedString = [[NSMutableAttributedSt ...
- HDU 3333 | Codeforces 703D 树状数组、离散化
HDU 3333:http://acm.hdu.edu.cn/showproblem.php?pid=3333 这两个题是类似的,都是离线处理查询,对每次查询的区间的右端点进行排序.这里我们需要离散化 ...
- 十六天 css汇总、js汇总、dom汇总
1.css补充之 后台管理界面 顶部导航栏.左边菜单栏.右边内容栏固定在屏幕相应位置 会有上下左右滚动条,设定窗口最小值,使页面不乱.注意overflow:auto要与position:absol ...
- Python演讲笔记1
参考: 1. The Clean Architecture in Python (Brandon Rhodes) 2. Python Best Practice Patterns (Vladimir ...