你的位置:首页 > 软件开发 > Java > Java实战之04JavaWeb

Java实战之04JavaWeb

发布时间:2016-06-28 22:00:22
一、会话技术简介1.什么是会话,为什么需要会话技术?会话:从打开一个浏览器,访问某个网站,到关闭这个浏览器的这个过程称为一次会话。http协议是状态的。2.会话技术的分类客户端存储技术:Cookie服务端存储技术:SessionCookie和Session的区别?1)存储在Coo ...

Java实战之04JavaWeb

一、会话技术简介

1.什么是会话,为什么需要会话技术?

会话:从打开一个浏览器,访问某个网站,到关闭这个浏览器的这个过程称为一次会话。http协议是状态的。

2.会话技术的分类

客户端存储技术:Cookie

服务端存储技术:Session

Cookie和Session的区别?

1)存储在Cookie中的用户的信息 存在客户端,Session将数据存储在服务器端,但是需要在客户端存储Session的编码id

2)安全性而言 Cookie相对不安全 Session相对安全

3)性能而言:根据实际的情况

二、会话技术之Cookie

Cookie技术是将数据存储到客户端

1.怎样去向客户端写出一个cookie

1)创建Cookie对象

Cookie cookie = new Cookie(name,value);

2)向客户端写出cookie

response.addCookie(cookie );

客户端:客户端解析http响应,响应头中有一个cookie,客户端会自动将cookie的信息存储到客户端的缓存

2.怎样从客户端获取一个Cookie

1)获得客户端携带的所有的cookie

Cookies[]  request.getCookies();

2)获得具体的某个cookie

遍历所有的cookie

通过getName()获得某一个cookie的名字

通过getValue()获得某一个cookie的值

3.设置Cookie时的细节

1)会话级别的cookie和持久级别的cookie

会话级别的cookie:会话结束cookie就清空

持久级别的cookie:会cookie存储到磁盘上

保存在磁盘上的时间

cookie.setMaxAge(秒);

注意:如果要想删除磁盘已经存储的cookie

将同名的cookie的持久化时间设置为0

将要删除的cookie的路径设置成与磁盘上存储的cookie的路径一致(即两个cookie的setPath一致)

2)设置cookie的携带的路径

cookie在默认情况下 会在产生的cookie资源的所在的目录下都携带

cookie.setPath(携带cookie的路径);

设置cookie的携带路径时以/开头,/代表本web服务器

例如:

cookie.setPath(“/”), cookie在访问web服务器下的所有资源的都携带

cookie.setPath(“/home”),在home应用时携带cookie

3)设置三方cookie(了解)

cookie.setDomain(域名);

三方cookie具有进攻性

4.以上代码实现

 1     response.setContentType("text/html;charset=UTF-8"); 2     //1、创建时间的Cookie 3     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 4     String accessTime = format.format(new Date()); 5     Cookie cookie = new Cookie("accessTime",accessTime); 6     //1.1 设置cookie的持久化的时间----在磁盘上存储的时间 7     //cookie.setMaxAge(60*10); 8     //1.2 设置cookie的携带路径 /代表web服务器 9     cookie.setPath("/day11_208/abc/accessTime");10     //2、将cookie写给客户端11     response.addCookie(cookie);12     //3、获取客户端携带的时间的cookie13     String accessTime_client = null;14     Cookie[] cookies = request.getCookies();15     if(cookies!=null){16       for(Cookie coo:cookies){17         //取出美哟个cookie对象的名字18         String cookieName = coo.getName();19         if("accessTime".equals(cookieName)){20           //取出该cookie的值21           accessTime_client = cookie.getValue();22         }23       }24     }25     26     //4、为用户显示上次访问时间27     if(accessTime_client!=null){28       response.getWriter().write("您的上一次访问时间是:"+accessTime_client);29     }else{30       //第一次访问31       response.getWriter().write("您是第一次访问");32     }

原标题:Java实战之04JavaWeb

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。