步骤

  • 获取session对象
  • 通过setAttribute写入session
  • 获取session的值
  • session销毁(手动销毁和自动销毁)

设置session

package com.demo;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;public class SetSessionDemo extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置字符集req.setCharacterEncoding("utf-8");resp.setContentType("text/html; charset=utf-8");PrintWriter writer = resp.getWriter();// 得到Session对象HttpSession session = req.getSession();// 写入sessionsession.setAttribute("GoodsDetail", "商品详情");// 获取session idString id = session.getId();// 判断session否新建if (session.isNew()) {writer.write("session 创建成功, session id为: " + id);} else {writer.write("session已经在服务器中存在了, ID: " + id);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

获取session中的值

package com.demo;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;public class GetSessionDemo extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置字符集req.setCharacterEncoding("utf-8");resp.setContentType("text/html; charset=utf-8");// 得到SessionHttpSession session = req.getSession();String goodsDetail = (String) session.getAttribute("GoodsDetail");resp.getWriter().write(goodsDetail);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

session销毁

手动

package com.demo;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;public class DelSessionDemo extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();session.removeAttribute("GoodsDetail");session.invalidate();}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

自动过期销毁

    <session-config><!--  设置session默认的失效时间, 以分钟为单位 --><session-timeout>1</session-timeout></session-config>

web.xml

<servlet><servlet-name>setSessionDemo</servlet-name><servlet-class>com.demo.SetSessionDemo</servlet-class></servlet><servlet-mapping><servlet-name>setSessionDemo</servlet-name><url-pattern>/set/session/demo</url-pattern></servlet-mapping><servlet><servlet-name>getSessionDemo</servlet-name><servlet-class>com.demo.GetSessionDemo</servlet-class></servlet><servlet-mapping><servlet-name>getSessionDemo</servlet-name><url-pattern>/get/session/demo</url-pattern></servlet-mapping><servlet><servlet-name>delSessionDemo</servlet-name><servlet-class>com.demo.DelSessionDemo</servlet-class></servlet><servlet-mapping><servlet-name>delSessionDemo</servlet-name><url-pattern>/del/session/demo</url-pattern></servlet-mapping>

Servlet中的Session使用方法相关推荐

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

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

  2. [JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)

    Servlet中的生命周期方法: @Override public void init(ServletConfig servletConfig) throws ServletException {}1 ...

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

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

  4. 在一般处理程序(handler)中获取session的方法

    这些天做用户实施警告系统 其中在完成时时监控的时候 ,由于需要时时监控网站的所有用户信息 但是在一般处理程序中想要获取session状态但是抛出异常说上下文中不存在session 在 aspx和asp ...

  5. java中的doget_java servlet中doGet()和doPost()方法的用法和区别

    一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全.而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方 ...

  6. Servlet中的生命周期方法

    1. 被创建:执行init方法,只执行一次         * Servlet什么时候被创建?             * 默认情况下,第一次被访问时,Servlet被创建             * ...

  7. Servlet中的Session

    默认的情况下一个浏览器独占一个Session对象.在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器 独占的session中,当用户使用浏览器访问其他程序是,其他程序可以从用户的Sessio ...

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

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

  9. Spring中获取Session的方法汇总

    Spring: web.xml <listener> <listener-class>org.springframework.web.context.request.Reque ...

最新文章

  1. android6.0升级名单,三星Android 6.0升级详细名单[多图]
  2. JS输入框统计文字数量
  3. 常考数据结构与算法:两个链表的第一个公共结点
  4. linux驱动中printk的使用注意事项
  5. Django中模型类 属性-学习笔记
  6. 关于centos 7 中service iptables save 指令使用失败的结局方案
  7. TFS 2005安装的注意事项
  8. 掌握 Linux 调试技术
  9. Android各个版本API的区别
  10. python与人工智能基础课程介绍_人工智能基础课程:Python基础
  11. python中argsparse_Python中argparse库的基本使用(示例)
  12. 杂谈 之 闲来无事(三)
  13. 二维vector初始化大小方法
  14. golang dep 导入报错问题
  15. 【 第一章:初识 ts】
  16. 为什么肯德基和麦当劳总是开在一起?
  17. 计算机图形物理知识,计算机图形学:虚拟和现实世界的融合
  18. git pull 报错 Your local changes would be overwritten by merge. Commit, stash or revert them to procee
  19. 详解数据分析中的行为分析
  20. 计算机excel求四分位数,如何在Excel中计算一组数字的百分位数和四分位数?

热门文章

  1. 电脑显示器的最佳高度
  2. 神经网络实现Mnist数据集简单分类
  3. 几款四千元左右笔记本电脑推荐
  4. 天猫店群是什么意思?天猫店群和传统模式相比有什么优势?
  5. 物理实验-迈克尔逊干涉仪的使用与调整 实验报告 重庆理工大学
  6. matlab中im2bw函数的用法
  7. 第6部分 一维数组和二维数组
  8. 北京车展新车畅想:斯柯达全新一代明锐
  9. mysql从后往前查找
  10. vue中获取页面滚动的高度