web会话技术

1.Cookie技术
  在客户端保存的数据,数据产生是在服务器
  在浏览器中Cookie是以文本的形式保存数据

2.cookie中使用中文问题

cookie数据,值可以使用中文,建议不要使用中文,在cookie使用中文,tomcat低版本不支持,从tomcat8开始支持

3.获取浏览器携带的cookie

浏览器在访问服务器的时候,携带cookie数据,服务端使用request对象获取cookie, cookie数据会在请求头

request对象方法, cookie[ ] getcookies() 获取多个cookie,返回cookie对象数组

cookie对象方法, getName()获取cookie的键值, getvalue 获取其值

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /**
     *  获取客户端浏览器携带的Cookie数据
     *  request对象方法 getCookies()
     */
    Cookie[] cookies =  request.getCookies();
    for (Cookie cookie : cookies){
        //遍历数组,取出的是数组中的每个Cookie对象
        //取出Cookie中的键
        String key = cookie.getName();
        //取出Cookie中的值
        String value = cookie.getValue();
        System.out.println(key+"==="+value);
    }
}

4.cookie的携带路径

浏览器每次都会携带cookie吗?

浏览器携带cookie,在cookie产生的路径下,cookie产生路径在/abc下,浏览器访问/abc下任意资源,都会携带cookie

cookie 对象方法  setpath()  设置携带的路径

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Cookie cookie = new Cookie("heima","java");
    //设置Cookie的携带路径,WEB应用名称,不要写死的
    cookie.setPath( request.getContextPath());
    response.addCookie(cookie);
}

5.cookie的生存时间

浏览器的cookie生存时间,默认是当前会话时间,浏览器关闭,会话结束

设置生存时间,cookie对象方法setMaxAge(int 秒)

6.记录上次访问时间

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html;charset=utf-8");
    //获取客户端携带的Cookie
    Cookie[] cookies = request.getCookies();
    //获取当前时间
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
    String time = sdf.format(new Date());

    //判断数组
    if (cookies==null){
        //没有数据,第一次访问
        response.getWriter().write("欢迎第一次访问");
        //当前时间,存储到Cookie中
        Cookie cookie = new Cookie("time",time);
        cookie.setMaxAge(60*10);
        cookie.setPath(request.getContextPath());
        response.addCookie(cookie);
    }else {
        //有数据,获取cookie中存储时间
        for(Cookie cookie :cookies){
            String key = cookie.getName();
            String value = cookie.getValue();
            response.getWriter().write("上次访问时间是:"+value);
            Cookie cookie2 = new Cookie("time",time);
            cookie2.setMaxAge(60*10);
            cookie2.setPath(request.getContextPath());
            response.addCookie(cookie2);
        }
    }
}

7.session对象

  HttpSession接口,session对象是接口的实现类,实现类对象tomcat引擎创建

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值