Blage's Coding Blage's Coding
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
  • 手写Spring

  • SSM

  • SpringBoot

  • JavaWeb

    • 前端基础
    • 后端基础
    • Thymeleaf视图模板
    • session会话
    • Servlet
    • Servlet优化
    • 依赖注入
    • 过滤器
    • 监听器
    • 正则表达式
    • 项目经验
  • Spring
  • JavaWeb
phan
2023-05-15

session会话

# session会话

  1. 会话跟踪技术

    解决HTTP无状态不能识别用户的问题。

    • API

      HttpSession session=request.getSession();
       //服务器端获取会话,如果是首次发送请求获取不到,则会创建新的并相应给客户端;客户端第二次请求会把sessionId带给服务器,服务器根据sessionId判断会话。
       session.isNew();//判断当前会话是否是新的
       session.getId();//获取sessionId
       session.getMaxInactiveInterval();//session允许不操作的最大时长,默认30min,
       session.invalidate();//强制性让会话立即失效
      
      1
      2
      3
      4
      5
      6
    • 向session保存作用域存储数据(账号密码)。同一个浏览器使用一个session,不同浏览器属于不同session。

      HttpSession session=request.getSession();
      session.setAttribute("uname","john");
      Object res=session.getAttrbute("uname");//注意结果是Object类型
      
      1
      2
      3
    • 页面转发:表示在容器内部servlet把请求转发给另一个servlet进行处理响应,客户端总共只发送一个Http请求。

      request.getRequestDispatcher("demo7").forward(request,response);
      
      1

      客户端重定向:servlet响应给客户端,并告诉他去请求另一个servlet。客户端总共发送两个Http请求,地址栏发生变化。

      response.sendRedirect("demo7");
      
      1
  2. 保存作用域

    • request:保存的数据仅在一次请求响应有效。

      response.sendRedirect无效,而request.getRequestDispatcher有效

    • session:保存的数据在一个会话作用域内有效。

      不同客户端访问无效,因为它们的session是不同的。

    • application:保存的数据在整个应用程序开启内有效

      只要Tomcat服务器开启期间,所有客户都能访问到相同数据。

      ServletContext application=request.getServletContext();
      application.setAttribute("name",uname);
      
      1
      2
    • 通过html传过来的值用request.getParameter()获取

      String fid=request.getParameter("fid");
      
      1
编辑 (opens new window)
#JavaWeb
上次更新: 2023/12/15, 15:49:57
Thymeleaf视图模板
Servlet

← Thymeleaf视图模板 Servlet→

Theme by Vdoing | Copyright © 2023-2024 blageCoder
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式