2020.1.13

Response对象

  • 作用:设置响应的消息
    • 响应头 setHeader(String name,String value) "Content-type"
    • 响应行 http版本 状态码 setStatus(int code)
    • 响应体 getWriter() getOutputStream()------>write()

域对象

request对象也是一个域对象,在这个域对象中可以存放一些数据
  • 数据的存储、读取、删除
    • 向request域对象中存储一些值:setAttribute(String key,Object obj)
    • 从request域对象中读取一些值:getAttribute(String key)
    • 从request域对象中删除指定的值:removeAttribute(String key)
  • request域对象的生命周期
    • 创建:第一次访问该Servlet服务的时候
    • 销毁:一次请求结束后就自动销毁了
    • 重定向获取不到request域对象中的值
ServletContext域对象,代表的是整个web应用对象,在这个对象内部封装了web应用的一些信息,注意:这个ServletContext对象不论何时何地获取的都是同一个对象。单例 Servlet
  • ServletContext对象生命周期
    • 创建:web应用已启动,该对象就随之创建,随着服务器的启动而创建
    • 销毁:服务器关闭的时候、web应用从服务器移除的时候
  • 如何获取ServletContext对象
    • 通过当前的Servlet对象来获取ServletContext对象 this.getServletContext()
    • 该对象在整个应用中始终是唯一的。
  • 常用的api方法
    • removeAttribute() 删除
    • getAttribute() 获取
    • setAttribute() 设置
  • ServletContext作用
    • 配置web应用的参数信息,因为该对象是随着服务器的启动而创建
    • Spring框架 ----->xml配置文件----->对象管理容器
    • applicationContext.xml
    • 该对象中存储的值可以被整个应用所共享

会话技术

由于HTTP协议是无状态的协议,就是说每次客户端请求服务器端,对于服务器端来说都是新的,他并不知道是谁在访问我,如果需要保证服务器来识别到底是哪一个客户端来访问我的,就需要会话技术来实现。

  • 什么是会话

    从用户打开客户端访问我们应用开始,到用户关闭客户端这个过程称之为一次会话。

    从客户端访问web应用开始,这时候就会在系统中开辟一个内存空间存储访问过程中的产生的数据,直到用户关闭浏览器,内存中的数据才会被清除掉。

  • 会话技术的分类

    • Cookie:把数据存储到客户端本地中,减少了服务器端存储数据的压力,安全性不高,客户端也可以手动清除掉Cookie值
    • Session:把数据存储到web应用服务器中,安全性较高,服务器压力较大
  • Cookie

    • 把数据存到客户端本地中

    • 存储过程

      服务器端经常需要把程序中的数据放到cookie中,通过响应头形式发送给客户端,客户端收到这个头信息,

      就会将头信息中的数据保存起来,客户端再次请求服务器端将cookie信息放到请求头中,那么服务器端获取请求头,请求头中有cookie信息,这样就能区分不同的用户

  • Session

    将数据保存到服务器端,它会给每一个客户端创建一块独自的内存空间,在用户第一次请求的过来的时候通过响应头形式将这块内存空间的编号发送给客户端,客户端每次请求时会携带JESSIONID放到请求头中访问服务器。

    服务器会找对应的JESSIONID识别是哪一块的内存空间。

  • 获取Session对象 getSession()

    • 两件事:
      1. 获取当前会话的Session对象,如果服务器端没有session对象,服务器自动创建一个新的session对象,如果有就获取对应的session对象
      2. 并将session中的JESSIONID放入cookie中,并设置的携带路径为当前web应用,自动通过response对象返回。
上一篇:NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;


下一篇:快速入手Servlet