Java.Web - Session 随笔

  • 什么是会话
指用户用一个浏览器,访问某个网站只要不关闭浏览器,不管用户点击多少个超链接,直到用户关闭浏览器,整个这个过程我们称为一次会话。


// 创建session
HttpSession session = request.getSession();
// 设置session属性,属性 重名,value会被替换
session. setAttribute("name", "gavin");
session. setAttribute("pwd", "123456");
// 获取session属性的值,返回的是一个object对象
session .getAttribute(" name ");
// 删除session属性
session.remove Attribute("name");

session的生命周期,可以去conf/web.xml配置,也可在项目下的web.xml配置,代码里面也可以设置。

// 设置一个秒数,这个秒数表示客户端在不发出请求时,sessionServlet引擎维持的最长时间
session.setMaxInactiveInterval(100);
// 让session中的所有属性解除绑定
session.invalidate()

服务器为每个浏览器提供单个session服务的原理:
    第一次访问web应用时,会创建一个session服务,然后给浏览器返回一个cookie里面包含了session的ID
    第二次访问web应用时,cookie里的id会随请求行发给服务器,服务器就能找到ID 对于的session

Session 案例:1. 验证用户合法性;2. 输入验证码的验证;3. 简单的购物车



【验证码案例】-Java绘图技术、
        // 设置浏览器不缓存
        response.setDateHeader("Expires", -1);
        response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
         // 设置浏览器接收图片
response.setHeader("Content-Type", "image/jpeg");
         // 创建一个图片
BufferedImage image = new BufferedImage(50, 20, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 50, 20);
g.setColor(Color.WHITE);
g.setFont(new Font(null, Font.BOLD, 20));
        // 得到随机生成的密码
String s = getString();
         // 把密码存放在session中,进行验证
request.getSession().setAttribute("code", s);
         // 把字画在图片上
g.drawString(getString(), 0, 20);
         // 把图片传给浏览器
ImageIO.write(image, "jpg", response.getOutputStream());
------------------
private String getString() {
Random r = new Random();
String s = "";
for (int i = 0; i < 4; i++) {
s += r.nextInt(10);
}
return s;
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值