HttpSession

HttpSession概述

  • HttpSession是由javaweb提供的,用来会话跟踪的类,session是服务器端对象,保存在服务器端
  • HttpSession是Servlet三大域对象之一,(request,session,application(ServletContext)),所以她也有setAttribute(),getAttribute,removeAttribute()
  • HttpSession底层依赖Cookie,或是URl重写,

HttpSession的作用

  • 会话范围,会话范围是某个用户从首次访问服务器开始,到该用户关闭浏览器结束,
  • 会话:一个用户对服务器的多次连贯性请求,所谓连贯性请求,就是该用户多次请求,中间没有关闭浏览器
  • 服务器会为每个客户端创造一个session对象,session就好比客户端在服务器端的账户,他们被服务器保存到一个Map中,这个Map被称之为session缓存
  • Servlet中得到session对象:HttpSession session = request.getsession();
  • JSP中得到session对象:session是jsp内置对象之下,不用创建就可以使用
  • session域相关方法:

void setAttibute(String name,Object value)
Object getAttibute(String name)

案例演示(演示保存用户登录信息)

  • 案例相关页面和Servlet

login.jsp:登录页面
succ1.jsp:只有登录成功才能访问的页面
succ.jsp:只有登录成功才能访问的页面
LoginServlet:校验用户是否登录成功

  • 各页面和Servlet内容

login.jsp:提供登录表单,提交表单请求LoginServlet
LoginServlet:获取请求参数,校验用户是否登录成功
失败:保存错误信息到request域中,转发到login.jsp(login.jsp显示request域中的错误信息)
成功:保存用户信息到session域中,重定向到succ1.jsp页面,显示session域中的信息
succ1.jsp:从session域中获取用户信息,如果不存在,显示“你还没有登录”,存在则显示用户信息
succ2.jsp:从session域中获取用户信息,如果不存在,显示“你还没有登录”,存在则显示用户信息

注:只要用户没有关闭浏览器,session就一直存在,那么保存在session中的用户信息也一直存在,那么用户访问succ1和
succ2就会通过

image.png

HttpSession原理

银行卡是一张卡,卡里面没有钱,卡里面只有一个id,id是唯一标识的意思,账户的唯一标识就是卡号,卡里面只有卡号,仪器一扫,扫出来的是卡号,然后拿卡号去和数据库里面的账号进行一匹配,账号找着了,账号里面的余额就找着了
人(客户端)—卡(Cookie)—是一个账户(账号)(session)——账号就是一个id,id是唯一标识(session id)——数据库(服务器)
银行账户是一个session

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文目录: JSP基础 Cookie HttpSession JSP基础 JSP(Java Server Page...
    极客圈阅读 541评论 0 3
  • HttpSession概述 什么是HttpSesssion javax.servlet.http.HttpSess...
    lhdoeo阅读 2,256评论 2 4
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 987评论 0 0
  • 本文包括:1、Listener简介2、Servlet监听器3、监听三个域对象创建和销毁的事件监听器4、监听三个域对...
    廖少少阅读 6,139评论 6 28
  • 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Se...
    chinariver阅读 5,677评论 1 49