美文网首页
java_session/cookie

java_session/cookie

作者: 走停2015_iOS开发 | 来源:发表于2021-02-02 10:35 被阅读0次

1.session 为啥使用会话:服务器无法识别http请求的出处(不知道来自于哪一个终端) 他只会接受一个请求信息 所以就存在一个问题 将用户的响应发送给其他人 必须有一种技术来让服务器知道请求来自哪里 这就是会话技术。 会话: 就是客户端和服务端之间的一系列连续的请求和响应的过程 打开浏览器进行操作到关闭浏览器的过程 会话状态:服务器和浏览器在会话过程中产生的状态信息 借助于会话状态 服务就能够吧属于同一次会话的一系列请求和响应关联起来
会话实现的俩种方式

  • session 在服务端存储
  • cookie 在客户端存储

session常用方法

获取当前sessionId
String getId()   
//设置session的失效时间 单位为秒
void setMaxNactiveInterval
//获取失效时间 默认1800 半个小时 int代表秒
int getMaxInactiveInterval
//设置seesion立即失效 退出登录用到
void invalidate 
//通过键值对的形式来存储数据和获取和移除 
//request的生命周期短 Attribute不用remove
//session生命周期长 Attribute需要用完remove
void setAttribute(a,b); get remove
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String pwd  = req.getParameter("pwd");
        if (username.equals(defaultName) && pwd.equals(defaultPwd)){
           // req.setAttribute("username",username);
            req.getSession().setAttribute("username",username);
            //此处不需要用转发 因为存到session里面 ,用不到servletRequest 所以可以用重定向
           //req.getRequestDispatcher("welcome.jsp").forward(req,resp);
            resp.sendRedirect("welcome.jsp");
        }else {
            resp.sendRedirect("sessionLogin.jsp");
        }
    }

2.cookie: 是服务端在http响应中附带给浏览器的一个小文本文件,一旦浏览器保存某个cookie 在之后的请求和响应过程中 会将此cookie来回传递 这样就可以通过cookie这个载体完成客户端和服务端的数据
cookie 不建议存储中文

        //创建cookie 响应到客户端
        Cookie cookie = new Cookie("name","zhangsan");
        response.addCookie(cookie);

        //读取cookie
       Cookie[] cookies =  request.getCookies();
       for (Cookie c:cookies){
           response.getWriter().write(c.getName()+"<br>");
           response.getWriter().write(c.getValue()+"<br>");
       }
响应cookie
读取cookie
  • 常用方法
//设置cookie的有效时间 单位为秒
void setMaxAge(int age)
//获取cookie的有效时间
int getMaxAge()
Session和Cookie的区别
  • session:
    1.保存在服务器
    2.保存的是Object
    3.会随着会话的结束而销毁
    4.保存重要的信息
    5.生命周期 服务端只要主要重启就销毁 浏览器只要关闭就销毁

  • cookie(看视频进度)
    1.保存在浏览器
    2.保存的是字符串 最好不要是汉字
    3.可以长期保存在浏览器 与会话无关
    4.保存不重要的信息
    5.生命周期:不随服务端的重启而销毁 我们可以通过getMaxAge方法设置有效期

相关文章

网友评论

      本文标题:java_session/cookie

      本文链接:https://www.haomeiwen.com/subject/mtnjtltx.html