java创建会话_Java 会话技术 之 session

Session技术(存放在服务器  基于cookie(存储sessionId))

每个客户端 第一次会话请求时  创建独自的session域+JSESSIONID

服务端 响应 set-cookie:JSESSIONID:xxxxx  存入客户端

客户端 请求时 携带cookie:JSESSIONID:xxxxx去找对应的session域(内存)

客户端关闭 清除内存cookie / 保留硬盘cookie

客户端开启 再次访问  JSESSIONID没有session域还在

Session对象的生命周期

创建:第一次执行request.getSession()时创建

销毁:

1)服务器(非正常)关闭时

2)session过期/销毁(不再请求,30分钟(tomcat默认)后销毁)

可以在WEB项目下WEB-INF/web.xml中进行配置

30

3)手动销毁session 退出时,删除session内数据 不用销毁

session.invalidate();

作用范围:

默认在一次会话中,一次会话中任何资源公用一个session对象

public class Servlet01 extends HttpServlet {

public void doGet(...) throws ServletException, IOException {

//获取每个客户端私有的session域(内存) 不存在 创建

HttpSession session=request.getSession();//获取/创建session域

session.setAttribute("goods", "iphone"); //存储数据

//String goods=(String)session.setAttribute("goods"); //取数据

//session.removeAttribute("goods"); //删除数据

String id=session.getId(); //获取JsessionId

response.getWriter().write("JsessionId:"+id); //网页输出id

}

public void doPost(...) {doGet(request, response);}

}

public class Servlet02 extends HttpServlet {//一次会话 任何资源共用session

public void doGet(...) throws ServletException, IOException {

HttpSession session=request.getSession();//获取session对象

String value=(String)session.getAttribute("name");//("goods")

response.setContentType("text/html;charset=utf-8");//解决乱码

response.getWriter().write("name:"+value);

}

public void doPost(...) {doGet(request, response);}

}

public class MyServlet extends HttpServlet {//session持久化

public void doGet(...) throws ServletException, IOException {

//获取session对象

HttpSession session=request.getSession();

session.setAttribute("name", "小野猪");

String id=session.getId();//获取JsessionId

//创建一个存储JsessionId的cookie对象

Cookie cookie=new Cookie("JSESSIONID",id);

cookie.setPath("/WEB0005");

cookie.setMaxAge(60*3);//JSESSIONID 存储时间

//发送cookie对象

response.addCookie(cookie);

response.getWriter().write("JSESSION:"+id);

}

public void doPost(...){doGet(request, response);}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值