• Session


    服务端会话跟踪技术:将数据保存到服务端

    JavaEE提供HttpSession接口,来实现一次会话的多次请求数据共享功能

    使用:

    1:获取session对象

    2:session对象功能

    void setAttribute(String name,Object o) :将数据存储到session中

    Object  getAttribute(String name) 根据键获取值

    void   removeAttribute(String name) 根据键,删除值

    创建一个Servlet1存session

    1. import javax.servlet.ServletException;
    2. import javax.servlet.annotation.WebServlet;
    3. import javax.servlet.http.HttpServlet;
    4. import javax.servlet.http.HttpServletRequest;
    5. import javax.servlet.http.HttpServletResponse;
    6. import javax.servlet.http.HttpSession;
    7. import java.io.IOException;
    8. @WebServlet("/a1")
    9. public class ServletSession extends HttpServlet {
    10. @Override
    11. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    12. HttpSession session = req.getSession();//获取Session对象
    13. String name="张三";
    14. session.setAttribute("username",name);
    15. }
    16. }

    创建Servlet2取session

    1. import javax.servlet.ServletException;
    2. import javax.servlet.annotation.WebServlet;
    3. import javax.servlet.http.HttpServlet;
    4. import javax.servlet.http.HttpServletRequest;
    5. import javax.servlet.http.HttpServletResponse;
    6. import javax.servlet.http.HttpSession;
    7. import java.io.IOException;
    8. @WebServlet("/b1")
    9. public class ServletSession2 extends HttpServlet {
    10. @Override
    11. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    12. HttpSession session = req.getSession();//获取Session对象
    13. Object username = session.getAttribute("username");
    14. System.out.println(username);
    15. }
    16. }

    分别访问Servlet1,和Servlet2,控制台就会输出 张三,所有的域对象的功能大同小异

    Session的钝化和活化 

    服务器重启后,Session中的数据是否还在

    钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入到硬盘的文件中(ctrl+c关闭)

    活化:再次启动服务器后,从文件中加载数据到Session中(还会把文件自动删除)

    Session销毁

    1:默认情况下无操作,30分钟自动销毁(例如你长时间没有操作,系统提示你要重新登录)

    1. <session-config>
    2. <session-timeout>40session-timeout>
    3. session-config>

    单位是分钟,在web.xml中配置 

    2:调用Session对象的 invalidate()方法    (注销功能)

    Cookie和Session区别

    Cookie和Session都是来完成一次会话多次请求之间数据共享的

    区别:

    存储位置: Cookie是将数据存储到客户端  Session 是将数据存储在服务器

    安全性: Cookie不安全  Session 安全

    数据大小  Cookie最大3k    Session无限制

    存储时间  Cookie可以长期存储  Session默认30分钟

    服务器性能  Cookie不占用服务器资源   Session占用服务器资源

    获取session创建时间

    1. //获取session创建时间
    2. long creationTime = session.getCreationTime();
    3. SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    4. out.print(sf.format(creationTime));

  • 相关阅读:
    微信小程序使用echarts/数据刷新重新渲染/图层遮挡问题
    解决使用ElementUI进行几个日期选择器之间的切换时,弹出框位置出错的问题
    视频汇聚/安防视频监控云平台EasyCVR云端录像播放与下载的接口调用方法
    uniapp模仿下拉框实现文字联想功能 - uniapp输入联想(官方样式-附源码)
    python多线程示例
    Jenkins构建 Maven项目(微服务)并自动发布
    微擎模块 志汇同城微圈小程序10.9.5开源版
    【MySQL从入门到精通】【高级篇】(二)MySQL目录结构与表在文件系统中的表示
    13、IOC 之环境抽象
    Pandas中的五种数据查询方法--【数值,列表,区间,条件,函数查询】
  • 原文地址:https://blog.csdn.net/m0_64365315/article/details/126826531