java session 使用_JavaWeb Session的使用

Session技术,依赖于Cookie

简述一下Cookie和Session的区别:

Cookie是把用户的数据写给用户的浏览器,浏览器保存

Session把用户的数据写到用户独占的Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)

Session标识传递的流程图:

cacccae8b4d7350106d2ab43cc727c59.png

Session目前支持的方法

方法

返回值

作用

getCreateTime():

long

获取创建时间

getID():

String

获取id

getLastAccessedTime():

long

获取最后一次访问时间

getServletContext():

ServletContext

ServletContext对象

setMaxInactiveInterval(int):

void

设置最大时间

getMaxInactiveInterval():

int

获取最大时间

getAttribute(String):

Object

获取节点

getAttributeNames():

Enumeration

获取节点名称

setAttribute(String, Object):

void

设置节点

removeAttribute(String):

void

移除节点

invalidate():

void

注销

isNew():

boolean

是否新

常用的方法

1、通过request请求获取Session对象

HttpSession session = request.getSession();

2、必须以键值对的形式往Session存储数据

session.setAttribute("username", "广涛");

3、获取、删除Session

session.getAttribute("username") // 获取数据

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

4、获取Session的id

String sessionId = session.getId();

5、判断Session是否为新创建

if (session.isNew()) {

resp.getWriter().write("session创建成功,ID:" + sessionId);

} else {

resp.getWriter().write("session已经在服务器中存在了,ID:" + sessionId);

}

使用session:

package com.guangtao;

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 sessionDemo1 extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 解决乱码问题

req.setCharacterEncoding("GBK");

resp.setCharacterEncoding("GBK");

HttpSession session = req.getSession();

session.setAttribute("username", "广涛");

String sessionId = session.getId();

if (session.isNew()){

resp.getWriter().write("session创建成功,ID:" + sessionId);

}else {

resp.getWriter().write("session已经在服务器中存在了,ID:" + sessionId);

}

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

doGet(req, resp);

}

}

9440a26b70f619bec4bbbdfcb76256b4.png

设置Session的有效期: 使用HttpSession的invalidate方法来设置失效时间

session.setMaxInactiveInterval(24*60*60); // 单位为秒

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值