默认的情况下一个浏览器独占一个Session对象。在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器
独占的session中,当用户使用浏览器访问其他程序是,其他程序可以从用户的Session中取出该用户的书序,为程序服务
Cookie和Session的主要区别:*cookie是把用户的数据写到用户的浏览器*session技术把用户的数据写到用户独占的Session中每个Session创建的时候都有一个ID号(默认是没有设置有效期的,会一直存在),然后以cookie的形式写给浏览器
从IE8在浏览器不关闭,打开新的一个浏览器的情况下,就有JSESSIONID共享
解决关闭浏览器浏,再打开浏览器创建一个新的session无法获得上次Session的问题:response.setCharacterEncoding("UTF-8");response.setContentType("text/html");PrintWriter out = response.getWriter();HttpSession hs=request.getSession();String id=hs.getId();System.out.println(id);Cookie cookie=new Cookie("JSESSIONID",id);cookie.setMaxAge(3600);cookie.setPath("/day_07");response.addCookie(cookie);hs.setAttribute("name","洗衣机");注意上边的cookie的name不能错,同时path也不能错
当浏览器在Internet选项的隐私-高级中设置了禁止cookie(第一方表示当前的网站的cookie,第三方表示其他网站的cookie)时,无法向浏览器回写id,此时在其他的页面无法或的改session,解决办法:重写URL:request.getSession();String url1=response.encodeURL("/day_07/Session_01");String url2=response.encodeURL("/day_07/Session_02");后边会跟上JSESSIONIDout.println("<a href="+url1+" target='_blank'>购买</a>");out.println("<a href="+url2+" target='_blank'>结账</a>");------但是这种方法有个debug是无法解决的;就是重新打开一个新的浏览器无法获得该session
session的配置:tomcat默认的是三十分钟<session-config><session-timeout>分钟</session-timeout></session-config>
request.getSession()与request.getSession(false)的区别:第一个是得到session,同时此时没创建session,会创建一个Session对象,而后者仅仅是获得session对象,不会创建
销毁session:invalidate()方法

转载于:https://www.cnblogs.com/08love125/articles/5436589.html

Servlet中的Session相关推荐

  1. servlet中的session不一定会被创建

    参考:http://c5ms.iteye.com/blog/1260593 servlet中的session不一定会被创建 以前在树上看session的生命周期,都知道session的生命周期是在客户 ...

  2. Servlet中关于Session数据存储遇到的数据转换问题

    首先我们先通过前端jsp传值给后台servlet 代码: <a href = "servlet/S1?number=1">数据转换</a> 我们向servl ...

  3. php获取jsp的session的值,在JSP或Servlet中获取session数量

    enums=ul.getUserList(); int i=0; while(enums.hasMoreElements()) { out.println(enums.nextElement()); ...

  4. Servlet中的Session使用方法

    步骤 获取session对象 通过setAttribute写入session 获取session的值 session销毁(手动销毁和自动销毁) 设置session package com.demo;i ...

  5. Servlet中(Session、Cookies、Servletcontext)的基本用法

    //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 1.session的设置:              //得到和req相关联的session,如果没有就创建 ...

  6. Tomcat5集群中的SESSION复制详解

    Tomcat 5服务器为集群和SESSION复制提供了集成的支持.本系列的第一篇文章将为大家提供SESSION持久性以及TOMCAT集群中SESSION复制的 内在工作机制一个概要认识.我将会讨论SE ...

  7. servlet单实例多线程 ---线程安全问题是由实例变量造成的,只要在Servlet里面的任何方法里面都不使用实例变量,那么该Servlet就是线程安全的。(所有建议不要在servlet中定义成员变

    Servlet 单例多线程 Servlet如何处理多个请求访问? Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servl ...

  8. Tomcat中的Session小结

    什么是Session 对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap: Session的目的 Http协议是一种无状态协议,即每次服务端 ...

  9. java sessionstate_在Java Web开发中自定义Session

    Session在存储安全性要求较高的会话信息方面是必不可少的,对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的.本文就来教大家如何在Java Web开发中自定义Session ...

最新文章

  1. react 用html插件,VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)-Go语言中文社区...
  2. vscode配置c 环境_SAST Weekly教你在macOS上用VS Code配置C/C++编程环境
  3. Linux内核RCU(Read Copy Update)锁简析-前传
  4. 破圈法求最小生成树_【学科加油站】悉大COMP9007 最小生成树知识点总结!
  5. Docker Kubernetes k8s 从入门到精通 阿里云实战命令
  6. 四阶龙格库塔算法及matlab代码
  7. JAVA毕设项目宠物店管理系统设计与实现(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  8. 通达OA数据库服务断电无法启动的处理方法(亲测2020-10-07。通达OA2017版本)
  9. Html5餐饮管理app,哗啦啦餐饮软件 餐饮管理系统
  10. 日紫白飞星算法_年、月、日、时紫白飞星法!
  11. 2021年岳阳市高考成绩查询,2021年岳阳高考状元名单公布,岳阳文理科状元是谁多少分...
  12. (80)FPGA减法器设计(全减法器)
  13. servlet使用监听器统计网站在线人数
  14. 礼品 read.php,心愿送礼网教你如何体面的接受礼品
  15. macOS Ventura 13 正式版系统(内部版本号:22A380)官方原版dmg镜像
  16. PVID(pvid vlan是什么意思)
  17. 便利蜂2022数据分析秋招一面凉经
  18. 对于企业,8种常见的无形资产评估项目
  19. 数据堂公司董事长齐红威应邀参加安徽省政府组织的企业家恳谈会
  20. java课程之团队开发冲刺阶段1.2

热门文章

  1. Error:The module 'app' is an Android project without build variants, and cannot be built.
  2. PHP 会话(session 时间设定)使用入门
  3. SpringBoot YML配置文件
  4. Go 的 Contex 是线程安全的吗?
  5. PHP Reflection与依赖注入
  6. MySQL10061错误Access denied for user root@localhost(Windows下)
  7. kafka生产者消息分区策略
  8. 国产IT彪起来了,后浪要将前浪拍死在沙滩上
  9. 解决 XMLHttpRequest status = 0 问题 及 返回值为null问题
  10. php编译时出错make: *** [libphp5.la] Error 1