当前位置: 首页 > wzjs >正文

怎么介绍vue做的购物网站项目企业应该如何进行网站推广

怎么介绍vue做的购物网站项目,企业应该如何进行网站推广,施工企业报验资质清单,网页版游戏排行榜女HttpSession 的运行原理(基于 Java Web) HttpSession 是 Java Web 开发中用于在服务器端存储用户会话数据的机制,它的核心作用是跟踪用户状态(如登录信息、购物车数据等)。 1. HttpSession 的基本概念 会话&#xff0…

HttpSession 的运行原理(基于 Java Web)

HttpSession 是 Java Web 开发中用于在服务器端存储用户会话数据的机制,它的核心作用是跟踪用户状态(如登录信息、购物车数据等)。


1. HttpSession 的基本概念

  • 会话(Session):指用户从访问网站到关闭浏览器(或超时)期间的一系列交互过程。

  • Session ID服务器为每个会话分配的唯一标识符(通常是一个 JSESSIONID Cookie)

  • 存储位置:Session 数据默认存储在 服务器内存 中(Tomcat/Jetty等),也可以配置到 Redis、数据库等。


2. HttpSession 的工作流程

(1)创建 Session

当客户端(浏览器)第一次访问服务器时:

  1. 服务器检查请求是否携带 JSESSIONID Cookie。

  2. 如果没有,则创建一个新的 Session,并生成唯一的 JSESSIONID

  3. 服务器在响应头中返回 Set-Cookie: JSESSIONID=xxx,浏览器保存该 Cookie。

(2)后续请求携带 Session ID

浏览器在后续请求中会自动带上 JSESSIONID Cookie:

GET /home HTTP/1.1
Cookie: JSESSIONID=abc123

服务器根据 JSESSIONID 找到对应的 Session,并读取/写入数据。

(3)相关配置

        在一些前后端分离的项目中,涉及跨域问题,这时如果想让会话携带Cookie等凭证,那么需要配置: withCredentials: true。withCredentials可以控制请求是否携带Cookie等凭证,同样的后端也需要设置。

         前端代码实例:

fetch('http://api.example.com/login', {method: 'POST',credentials: 'include', // 等效于 withCredentials: trueheaders: { 'Content-Type': 'application/json' },body: JSON.stringify({ username: 'user', password: 'pass' })
});

       后端代码:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: <具体域名>  

注意前后端都需要配置,否则也会报错

(3)Session 失效

Session 会在以下情况被销毁:

  • 超时session.setMaxInactiveInterval(1800)(30分钟无活动则失效)。

  • 主动销毁:调用 session.invalidate()

  • 服务器重启(如果 Session 未持久化到外部存储)。


3. HttpSession 的核心 API

方法说明
request.getSession()获取 Session(如果没有则创建)
request.getSession(false)获取 Session(如果没有则返回 null
session.getId()获取 Session ID
session.setAttribute("key", value)存储数据
session.getAttribute("key")读取数据
session.removeAttribute("key")删除数据
session.invalidate()销毁 Session
session.setMaxInactiveInterval(seconds)设置超时时间(秒)

4. HttpSession 的底层实现

(1)Session 存储方式

  • 默认:存储在 服务器内存(Tomcat 使用 ConcurrentHashMap)。

  • 分布式环境:使用 Redis数据库 或 Session 复制(如 Spring Session)。

(2)Session ID 的传递方式

  • Cookie(默认)

    Set-Cookie: JSESSIONID=abc123; Path=/; HttpOnly
  • URL 重写(禁用 Cookie 时):

    <a href="/home;jsessionid=abc123">Home</a>

5. 代码示例

(1)存储 Session 数据

@GetMapping("/login")
public String login(HttpServletRequest request) {HttpSession session = request.getSession(); // 获取或创建 Sessionsession.setAttribute("user", "张三"); // 存储数据session.setMaxInactiveInterval(1800); // 设置30分钟超时return "登录成功";
}

(2)读取 Session 数据

@GetMapping("/profile")
public String profile(HttpServletRequest request) {HttpSession session = request.getSession(false); // 不自动创建 Sessionif (session == null) {return "未登录";}String user = (String) session.getAttribute("user");return "当前用户: " + user;
}

(3)销毁 Session(退出登录)

@GetMapping("/logout")
public String logout(HttpServletRequest request) {HttpSession session = request.getSession(false);if (session != null) {session.invalidate(); // 销毁 Session}return "已退出登录";
}

6. 常见问题

(1)Session 和 Cookie 的区别

SessionCookie
存储位置服务器浏览器
安全性较高(数据在服务端)较低(可能被篡改)
存储大小较大(依赖服务器内存)较小(一般 ≤4KB)
生命周期可设置超时时间可设置过期时间

(2)如何防止 Session 劫持?

  • 使用 HTTPS 加密传输 JSESSIONID

  • 设置 HttpOnly 和 Secure 标志,防止 XSS 攻击:

    // Spring Boot 配置(application.properties)
    server.servlet.session.cookie.http-only=true
    server.servlet.session.cookie.secure=true

7. 总结

  1. HttpSession 用于在服务器端存储用户会话数据,依赖 JSESSIONID 标识用户。

  2. 默认存储在内存,分布式环境可用 Redis 共享 Session。

  3. 核心操作setAttribute()getAttribute()invalidate()

  4. 安全建议:使用 HttpOnly + Secure Cookie,避免 Session 劫持。


文章转载自:

http://24vMlX2p.jbmsp.cn
http://EGblu2vi.jbmsp.cn
http://LGFZ2IE0.jbmsp.cn
http://CA4KAUz9.jbmsp.cn
http://pjHsZ2J5.jbmsp.cn
http://wLrZwIZ1.jbmsp.cn
http://jbRlamsJ.jbmsp.cn
http://z6s2bz7g.jbmsp.cn
http://xiWPgvbJ.jbmsp.cn
http://x4zY14ft.jbmsp.cn
http://XqmQgDyE.jbmsp.cn
http://MCgsoMk3.jbmsp.cn
http://BLaTWx2t.jbmsp.cn
http://OQ8J2ytL.jbmsp.cn
http://lT3FsMyY.jbmsp.cn
http://KZhDSyMM.jbmsp.cn
http://BprMrXmB.jbmsp.cn
http://Wus3gq6w.jbmsp.cn
http://Wj1nkKux.jbmsp.cn
http://WYQ0QggU.jbmsp.cn
http://uytl9PNL.jbmsp.cn
http://pBGk484z.jbmsp.cn
http://dV89YZmH.jbmsp.cn
http://6GVsDbVw.jbmsp.cn
http://1ehtO8kQ.jbmsp.cn
http://QXu9XUjB.jbmsp.cn
http://9jd47gR7.jbmsp.cn
http://dAL7xG3h.jbmsp.cn
http://Nv0hEfku.jbmsp.cn
http://gtBz8y02.jbmsp.cn
http://www.dtcms.com/wzjs/670919.html

相关文章:

  • wordpress多站点教程thinkphp做网站有什么好处
  • 色卡网站装饰设计软件
  • 网站建设51jyoo杭州网站建设公司有哪些
  • 大型网站开发协调企业信息管理系统包括
  • 如何建立公司网站电话吴江网站建设哪家好
  • 汕头网站推广seo仓库管理系统网站建设
  • 专门做旅游的网站微信小程序怎么创建店铺
  • 保定城乡建设局网站做医疗类网站有什么需要审核的
  • 网站开发需要用到哪些软件自己的网站做app
  • 网站开发大学有哪些商城系统
  • 品牌网站设计制作哪家正规潍坊市建设工程交易中心网站
  • 网站主机选择与优化wordpress 收不到邮件
  • 织梦网站名称标签做网站能用ai好还是ps
  • 自己做网站必须要学哪些重庆市渝快办官网
  • 南通公司网站建设网页设计参考板式
  • 无线网站制作校园网站建设与应用
  • 电子商务网站建设与维护李建忠招商网官网
  • 银饰品网站建设规划策划书物联网开发软件有哪些
  • 青岛网站建设企业建站重庆江北营销型网站建设公司推荐
  • 公司注册网站查询深圳ppt设计制作公司
  • 学做婴儿衣服网站天津在线制作网站
  • 网站关键词找不到建筑信息平台app
  • 诏安县城乡建设局网站如何做好百度推广
  • 旅游网站制作建设青海省建设厅官方网站
  • 做网站联盟要多少钱营销型网站怎么做
  • 南京网站制作案例商城小程序费用标准
  • 乌兰察布市建设局网站WordPress添加ftp
  • t恤定制网站哪个好哪个网站可以做封面
  • 微网站是免费的吗非微信官方网页自己做的网站
  • 做好网站建设静态化广东东莞天气预报15天