会话治理


一.会话技术概念

会话技术:浏览器开始拜访网站到拜访网站完结期间产生的屡次申请响应组合在一起叫做一次会话。会话的过程中会产生会话相干的数据,咱们须要将这些数据保存起来。技术大抵分为两种:Cookie(客户端技术)和Session(服务器端技术)。

二.Cookie和Session概念

Cookie:Cookie是客户端技术,程序把每个用户的数据以cookie的模式写给用户各自的浏览器。当用户应用浏览器再去拜访服务器中的web资源时,就会带着各自的数据去。这样,web资源解决的就是用户各自的数据了。

Session:Session是服务器端技术。利用这个技术,服务器在运行时能够为每一个用户的浏览器创立一个其独享的session对象。因为session为用户浏览器独享,所以用户在拜访服务器的web资源时,能够把各自的数据放在各自的session中。当用户再去拜访服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

三.Cookie
1.获取所有的Cookie并组成组(名字+值):
request.getCookies();
2.设置Cookie(名字+值):
response.addCookie(Cookie c);
3.Cookie的结构(造的时候就须要设定好cookie的名字和值):
new  Cookie(String name,String value)
4.获取Cookie名称:
getName();
5.获取Cookie的值:
getValue();
6.设置Cookie的值:
setValue
7.设置Cookie的最大留存工夫和获取Cookie的留存工夫:
setMaxAge与getMaxAge
8.告诉浏览器在拜访服务器中的哪个门路及其子门路时会获取以后cookie
setPath与getPath
9.告诉浏览器在拜访哪个域名的时候带着以后的cookie信息(个别不应用)
 setDomain与getDomain
例子:显示用户上次访问的工夫
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {              //解决中文乱码        response.setContentType("text/html;charset=utf-8");        Cookie []  cs = request.getCookies();        Cookie findC = null;        if(cs!=null){            for(Cookie c : cs){                if("lastTime".equals(c.getName())){                    findC = c;                }             }        }        if(findC == null){            response.getWriter().write("您是第一次拜访本网站!");        }else{            Long lastTime = Long.parseLong(findC.getValue());            response.getWriter().write("您上次访问工夫是:"+new Date(lastTime).toLocaleString());        }                Date date = new Date();        Cookie c = new Cookie("lastTime",date.getTime()+"");        c.setMaxAge(3600*24*30);        c.setPath(request.getContextPath());        //c.setDomain(".baidu.com");        response.addCookie(c);    }