cookie和session
-
cookie : 客户端行为, 数据保存在客户端(cookie对象在服务器创建)
-
cookie的提交:
- cookie可以通过设置名称,路径,以及域名保证是否提交cookie到指定的网站
-
session: 服务端行为,数据保存在服务端(session对象在服务端)
- 保存哪些数据: 保存私有数据(个人用户数据)
案例分析
-
保存用户的浏览记录功能, 浏览记录数据在哪里保存?
-
验证码的功能, 验证码数据在哪里保存?
sessionid是一个随机数
cookie名称相同会覆盖
1.配置tomcat服务器
2.创建jsp模块
3.添加依赖
默认配置样式
4.jsp代码
哥,${username},您吃好了,慢走!! !
5.业务代码
pubLic cLass Helloservlet extenas HttpservLet {
private String message;
public void init() { message = "Hello World ! "; }
public void doGet(HttpServletRequest request,HttpServletResponse response) throw
//1.创Lsession对象,保存用户信息
HttpSession session = request.getsession();
//2.获取用户信息
session.setAttribute( s: "username",request.getParameter( s: " name"));
//3.把用户信.悬显示到页面
response.sendRedirect( s: request.getcontextPath()+" /index.jsp");
//2.操作都是web服务端自动完成
//1=获取session的id2=把id存到cookie里面3=把cookie响应到浏览器端
}
public void destroy() {}
6.访问路径
7.结果
- 使用cookie**
向客户端发送cookie
cookie c =new cookie("name","value"); //创建cookie
c.setMaxAge(60*60*24); //设置最大时效,此处设置的最大时效为一天
response.addcookie(c); //把cookie放入到HTTP响应中
从客户端读取cookie
String name ="name";
cookie[]cookies =request.getcookies();
if(cookies !=null){
for(int i= 0;i
优点: 数据可以持久保存,不需要服务器资源,简单,基于文本的Key-Value
缺点: 大小受到限制,用户可以禁用cookie功能,由于保存在本地,有一定的安全风险。
- URL 重写
在URL中添加用户会话的信息作为请求的参数,或者将唯一的会话ID添加到URL结尾以标识一个会话。
优点: 在cookie被禁用的时候依然可以使用
缺点: 必须对网站的URL进行编码,所有页面必须动态生成,不能用预先记录下来的URL进行访问。
3.隐藏的表单域
优点: cookie被禁时可以使用
缺点: 所有页面必须是表单提交之后的结果。
4. HttpSession
在所有会话跟踪技术中,HttpSession对象是最强大也是功能最多的。当一个用户第一次访问某个网站时会自动创建 HttpSession,每个用户可以访问他自己的HttpSession。可以通过HttpServletRequest对象的getSession方 法获得HttpSession,通过HttpSession的setAttribute方法可以将一个值放在HttpSession中,通过调用 HttpSession对象的getAttribute方法,同时传入属性名就可以获取保存在HttpSession中的对象。与上面三种方式不同的 是,HttpSession放在服务器的内存中,因此不要将过大的对象放在里面,即使目前的Servlet容器可以在内存将满时将HttpSession 中的对象移到其他存储设备中,但是这样势必影响性能。添加到HttpSession中的值可以是任意Java对象,这个对象最好实现了 Serializable接口,这样Servlet容器在必要的时候可以将其序列化到文件中,否则在序列化时就会出现异常。



