JavaWeb————JSP九大内置对象 session

session (服务端)

Cookie (客户端,不是内置对象)

Cookie是由 服务端生成的.再发送给客户端保存。

相当于本地缓存的作用: 客户端(hello. mp4, zs/abc)->服务端(hello. mp4; zs/abc)

作用:提高访问服务端的效率,但是安全性较差。

Cookie:name=value

javax. servlet.http.Cookie

  • public Cookie (String name, String value)
  • String getName(): 获取name
  • String getValue() :获取value
  • void setMaxAge(int expiry);最大有效期 (秒)

服务端准备Cookie:

  • response. addCookie (Cookie cookie)页面跳转(转发,重定向)
  • 客户端获取cookie:request. getCookies() ;
  • a.服务端增加cookie :response对象; 客户端获取对象: request对象
  • b. 不能直接获取某一个单独对象,只能次性将 全部的cookie拿到

通过F12可以发现  除了自己设置的Cookie对象之外,还有一个名为JSESSIONID的cookie(和session相关)

3.使用cookie实现记住用户名  功能

(建议cookie中只保存英文、数字 ,否则需要进行编码、解码处理)

(cookie可以在客户端多个浏览器共享)IE 火狐

保留时间:


  session :会话

  1.       a.浏览网站:开始-关闭
  2.       b.购物浏览、付款、退出
  3.       c.电子邮件:浏览、写邮件、退出,开始-结束

      session机制:

      客户端第一次请求服务端时,服务端会产生一个session对象 (用于保存该客户的信息) ;并且每个session对象 都会有一一个唯的 sessionId( 用于区分其他session) ;

      服务端由会产生一个cookie, 并且该cookie的name= JSESSIONID , value=服务端sessionId的值;

      然后服务端会在响应客户端的同时将该cookie发送给客户端,至此客户端就有了一个cookie (JSESSIONID);

因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID 一sessionID)

      客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid

如果匹配成功(cookie jsessionid和sesion sessionid) 说明此用户不是第一次访问

栗子:

客户端:顾客

服务端:存包处   ——商场(服务端)

顾客第一次存包:商场判断此人是否是之前已经存过包(通过手里是否有钥匙)

如果是新顾客(没钥匙),分配一个钥匙给顾客;钥匙会和柜子 一一对应;

第二次/n次存包:商场判断此人是否是之前已经存过包(通过手里是否有钥匙)

如果是老顾客(有钥匙),不需要分配一个钥匙给顾客;顾客手里的钥匙会和柜子 自动一一对应;

session
a. session存储在服务端
b. session是在同一个用户(客户)请求时共享
c. 实现机制:第次客户请求时产生一个sessionid 并复制给cookie的jsessionid 然后发给客户端。最终通session的sessionid—jsessionid 
session方法:
String getId() :获取sessionId
boolean isNew() :判断是否是新用户(第一次访问)void invalidate() :使session失效 (退出登录、注销)
setAttribute()getAttribute() ;
void setMaxInactiveInterval(秒) :设置最大有效非活动时间

int getMaxInactiveInterval () :获取最大有效非活动时间

 

示例:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值