• Java 会话技术 之cookie


    会话技术Cookie&Session (记录这次会话中客户端的状态与数据

    不登陆情况下,保存数据到本地)

    一次会话:从打开浏览器访问某个站点,到关闭这个浏览器(关页面不算)

    Cookie:数据存储在客户端本地,减少服务器端存储压力,客户端可清除

    Session:将数据存储到服务器端,安全性相对好

    Cookie技术(存放在客户端 内存/硬盘 不能是中文)

    客户端 请求 加入购物车 手机

    服务端 响应 set-cookie:goods-phone Cookie发送到客户端

    客户端 请求 cookie:goods-phone 服务端接受Cookie

     

    创建WEB05项目

    src

    com.oracle.demo01

    CookieServlet.java

    GetCookieServlet.java

    AccessServlet.java

    public class CookieServlet extends HttpServlet {//向客户端发送Cookie

    public void doGet(...) throws ServletException, IOException {

    //创建Cookie对象非中文

    Cookie cookie=new Cookie("goods","vivophone");

    //设置持久化时间,cookie信息存储在硬盘中,过期自动删除

    //不设置持久化,cookie信息存储在内存中,浏览器关闭删除

    cookie.setMaxAge(120);//设置Cookie持久化时间  120

    //设置Cookie携带路径 只有这个路径携带cookie

    //不写携带路径 产生该cookieservlet的同级路径都携带

    cookie.setPath("/WEB0005");//WEB0005下的都携带

    //cookie.setPath("/");//服务器下的都携带

    //Cookie存储的信息发送到客户端

    response.addCookie(cookie);

    //删除客户端cookie用同名同路径持久化时间为0cookie覆盖

    Cookie cookie = new Cookie("goods","vivophone");//创建cookie

    cookie.setPath("/WEB0005"); //设置携带路径(与删除的一致)

    cookie.setMaxAge(0); //设置持久化时间

    response.addCookie(cookie); //发送Cookie

    }

    public void doPost(...){doGet(request, response);}

    }

    public class GetCookieServlet extends HttpServlet {//获取客户端的Cookie

    public void doGet(...) throws ServletException, IOException {

    Cookie[] cookies=request.getCookies();//客户端所有Cookie数据

    //通过Cookie的名称得到想要的Cookie

    if(cookies!=null){ //cookie不为空

    for(Cookie cookie:cookies){ //遍历

    String cookieName=cookie.getName(); //获得cookie

    if(cookieName.equals("goods")){

    String cookievalue=cookie.getValue();//获得cookie

    System.out.println(cookieName+":"+cookievalue);

    }

    }

    }

    }

    public void doPost(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException {

    doGet(request, response);

    }

    }

    public class AccessServlet extends HttpServlet {//记录上次访问时间

    public void doGet(...) throws ServletException, IOException {

    Date date=new Date(); //获取当前时间

    SimpleDateFormat sdf= //时间格式

    new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");

    String currentTime=sdf.format(date); //格式 时间 字符串

    Cookie cookie=new Cookie("LastTime",currentTime);//创建Cookie

    cookie.setMaxAge(60*10); //设置Cookie持久化时间

    response.addCookie(cookie); //发送Cookie到客户端

    Cookie[] cookies=request.getCookies();//客户端所有Cookie对象

    String lastTime=null;

    if(cookies!=null){

    for(Cookie c:cookies){ //遍历所有Cookie

    if(c.getName().equals("LastTime")){ //名为"LastTime"

    lastTime=c.getValue(); //值赋给lastTime

    }

    }

    }

    response.setContentType("text/html;charset=utf-8");//解决乱码

    if(lastTime==null){response.getWriter().write("您是第一次访问");}

    else{response.getWriter().write("您上次访问时间为:"+lastTime);}

    }

    public void doPost(...) {doGet(request, response);}

    }

  • 相关阅读:
    idea优秀插件(Java开发常用)
    mysql中文乱码问题解决
    SpringMVC生成任意文件,访问链接即下载
    SpringMVC生成Excel下载
    [转]java实现excel的导入导出(poi详解)
    [转]遇到乱码了查看乱码编码
    idea打包java可执行jar包
    Java项目JUnit简单使用
    [转]SpringMVC拦截器简单教程
    Java精确计算小数
  • 原文地址:https://www.cnblogs.com/javscr/p/10285949.html
Copyright © 2020-2023  润新知