Servlet中的Session使用方法
步骤
- 获取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使用方法相关推荐
- servlet中的session不一定会被创建
参考:http://c5ms.iteye.com/blog/1260593 servlet中的session不一定会被创建 以前在树上看session的生命周期,都知道session的生命周期是在客户 ...
- [JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)
Servlet中的生命周期方法: @Override public void init(ServletConfig servletConfig) throws ServletException {}1 ...
- Servlet中关于Session数据存储遇到的数据转换问题
首先我们先通过前端jsp传值给后台servlet 代码: <a href = "servlet/S1?number=1">数据转换</a> 我们向servl ...
- 在一般处理程序(handler)中获取session的方法
这些天做用户实施警告系统 其中在完成时时监控的时候 ,由于需要时时监控网站的所有用户信息 但是在一般处理程序中想要获取session状态但是抛出异常说上下文中不存在session 在 aspx和asp ...
- java中的doget_java servlet中doGet()和doPost()方法的用法和区别
一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全.而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方 ...
- Servlet中的生命周期方法
1. 被创建:执行init方法,只执行一次 * Servlet什么时候被创建? * 默认情况下,第一次被访问时,Servlet被创建 * ...
- Servlet中的Session
默认的情况下一个浏览器独占一个Session对象.在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器 独占的session中,当用户使用浏览器访问其他程序是,其他程序可以从用户的Sessio ...
- php获取jsp的session的值,在JSP或Servlet中获取session数量
enums=ul.getUserList(); int i=0; while(enums.hasMoreElements()) { out.println(enums.nextElement()); ...
- Spring中获取Session的方法汇总
Spring: web.xml <listener> <listener-class>org.springframework.web.context.request.Reque ...
最新文章
- android6.0升级名单,三星Android 6.0升级详细名单[多图]
- JS输入框统计文字数量
- 常考数据结构与算法:两个链表的第一个公共结点
- linux驱动中printk的使用注意事项
- Django中模型类 属性-学习笔记
- 关于centos 7 中service iptables save 指令使用失败的结局方案
- TFS 2005安装的注意事项
- 掌握 Linux 调试技术
- Android各个版本API的区别
- python与人工智能基础课程介绍_人工智能基础课程:Python基础
- python中argsparse_Python中argparse库的基本使用(示例)
- 杂谈 之 闲来无事(三)
- 二维vector初始化大小方法
- golang dep 导入报错问题
- 【 第一章:初识 ts】
- 为什么肯德基和麦当劳总是开在一起?
- 计算机图形物理知识,计算机图形学:虚拟和现实世界的融合
- git pull 报错 Your local changes would be overwritten by merge. Commit, stash or revert them to procee
- 详解数据分析中的行为分析
- 计算机excel求四分位数,如何在Excel中计算一组数字的百分位数和四分位数?