package com.foreknow.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 1.什么是会话
* 它是指客户端与服务器端之间数据的传输(登录,购物车)。
* 2.会话管理:管理数据。
* 常用的会话技术:
* 1.Cookie 数据会保存在客户端
* 2.Session 数据会保存在服务器端
*
*
* 什么是Cookie:它是客户端的技术,程序会把每个用户的数据以cookie的形式写给用户各自的浏览器,
* 当用户使用浏览器再去访问Web服务器的资源的时候,它会有它各自的数据。
*
* Cookie类:主要用于存储会话数据。
* 1.构造Cookie对象
* Cookie(name,value);
*
* 2.设置Cookie
* setPath(url) 设置Cookie的有效路径
* setMaxAge(int exp) 设置Cookie的有效时间(秒为单位的)例如:一天 24*60*60
* setValue(value) 设置Cookie的值
* 3.发送cookie到浏览器端保存
* response.addCookie(cookie);
*
* 4.服务器端接收cookie
* 返回值类型Cookie[] request.getCookies(cookie);
*
*
* Cookie的原理
* 1.要在服务器端创建Cookie对象,要把会话的数据存储到会话中
*
* 2.服务器会发送Cookie的信息给浏览器,之后会把cookie保存到浏览器端
*
* 3.浏览器会在下次访问服务的时候,会携带cookie信息(这些信息会包含在http请求头中)
*
* 4.服务器会接收到浏览器携带的cookie信息
*
* 后期如果解决客户端与服务器端的多次请求(解决的方案就是用H5中的本地存储)
*
* 注意:
* 1.setPath(uri):设置路径保存在哪里,浏览器在有效的路径下访问服务器的时候会携带cookie信息
*
* 2.setMaxaAge(int exp)
* 1.正数:表示cookie数据保存浏览器的缓存到硬盘中,数值表示要保存的时间
*
* 2.负数:表示cookie数据会保存在浏览器的内存中,如果浏览器关闭,cookie就失效了。
*
* 3. 0:表示会删除同名的cookie数据
*
* cookie的数据类型只能保存非中文字符串类型。可以保存多个cookie,一个浏览器只能保存300个
* cookie,每个站点最多可以存入20个cookie,每个cookie的大小限制为4KB
* @author ttc
*
*/
public class CookieDemo extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Cookie cookie = new Cookie("name","tom");
// cookie.setPath("/hello");//如果没有设置有效路径,默认的是Web的项目地址
// cookie.setMaxAge(1*30*24*60*60);//设置cookie的存活时间为20秒
// response.addCookie(cookie);
Cookie[] cookies = request.getCookies();
if(cookies!=null) {
for(Cookie c:cookies) {
String name = c.getName();
String value = c.getValue();
System.out.println(name+"----"+value);
}
}else {
System.out.println("否则没有接收到cookie数据......");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
Session服务器会话技术
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 问题: 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET...
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服...
- 应用服务器集群的session管理:这是我在一本网站技术架构分析的书上看到的。这一章主要写在高可用架构设计之下服务...
- 好几天没登陆2012的服务器了,今天一登录就提示“由于没有远程桌面授权服务可以提供许可证,远程会话被中断。请跟服务...