关于java:JavaWeb开发会话管理

2次阅读

共计 1488 个字符,预计需要花费 4 分钟才能阅读完成。

会话治理


一. 会话技术概念

会话技术:浏览器开始拜访网站到拜访网站完结期间产生的屡次申请响应组合在一起叫做一次会话。会话的过程中会产生会话相干的数据,咱们须要将这些数据保存起来。技术大抵分为两种: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);
    }
正文完
 0