Session对象初探
来源:互联网 发布:上飞院待遇 知乎 编辑:程序博客网 时间:2024/05/21 17:06
相对于cookie对象而言,session对象是对每一个浏览器的,session是存放在服务器上的,而cookie是存放在客户端机器上的,其实session底层还是使用的cookie帮助实现的一些功能。
首先,session的声明周期为第一次调用request.getsession这句代码的时候,当他发现客户机没有带过来session给指定的id的时候,session就会根据你的一个浏览器给i创建一个对应的session,然后通过cookie下放到客户端,但是这个cookie 是没有限制是时间的,意思就是如果客户偶然把浏览器关了,那就意味着,则需i额数据就丢失了,这个是绝对不可以的,所哟我们需要显示的把这个cookie的有效时长给限制住,还有一点就是,session是存放在服务器端的,如果一个session半个小时没有被访问,他会自动的摧毁,所以,我们显示的下放的cookie可以限定时长为半个小时就好。
还有,session下放的cookie的默认名称为JSESSIONID,名称的意思大家都明白,不需要多解释。
下面将一个简单的例子放上来
package com.bird.session;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * @category 使用Session来实现数据的跨servlet访问 * @author Bird * */public class SessionDemo1 extends HttpServlet {//这个servlet是用来选择购买商品的名称的private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {HttpSession session = request.getSession();String sessionId = session.getId();Cookie cookie = new Cookie("JSESSIONID",sessionId);cookie.setPath("/Web");cookie.setMaxAge(30*60);response.addCookie(cookie);session.setAttribute("name", "洗衣机");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}}
package com.bird.session;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * @category 这个servlet是用来结账的 * @author Bird * */public class SessionDemo2 extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");PrintWriter writer = response.getWriter();HttpSession session = request.getSession(false);//只是获取session,不创建String name = (String) session.getAttribute("name");writer.write(name);session.invalidate();//摧毁session}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}}
- Session对象初探
- php session使用初探
- Session对象
- session对象
- Session 对象
- Session对象
- Session对象
- Session对象
- Session对象
- Session 对象
- Session对象
- session对象
- Session对象
- session对象
- session对象
- session对象
- session对象
- session对象
- Android 文件系统移植
- Android Trick 14: proguard导致签名后的apk报错:ClassNotFoundException 的问题解决
- 使用Java进行CORBA编程-JacORB-Event Service
- http://www.2cto.com/kf/201112/115476.html
- android native property属性
- Session对象初探
- 一个MSSQL全文索引的例子
- “Software development using scrum”读书笔记
- 缓动类
- iBatisNet学习笔记一:配置
- android 代码开源社区连接,可以去查找想要的源码
- oracle 热备份
- 斐波那契数列算法分析
- 设计模式之迭代器模式