二、JSP02 核心内置对象

二、JSP 核心内置对象

2.1 认识 JSP 内置对象

不需要做任何声明就可以直接使用的对象,称之为内置对象

JSP 中的一些内置对象:out、request、response、session、application

JSP 的内置对象只能在 JSP 小脚本(使用 <%%> 标记)或表达式(使用 <%=%> 标记)中使用

2.1.1 out 内置对象

  • out 对象用于向浏览器输出数据
  • 它是 JSP 中最常用的一个 JSP 内置对象
  • out 内置对象常用的方法是 print() 方法,用于向页面输出内容
  • out 内置对象的常用方法
方法名称 说明
void println() 向客户端打印字符串
void flush() 将缓冲区内容输出到客户端
void close() 关闭输出流
void clear() 清除缓冲区的内容,如果响应已经被提交(已调用过 flush() 方法),则抛出 IOException 异常
void clearBuffer() 清除缓冲区的当前内容,及时响应已被提交,也不会抛出 IOEXception 异常

2.1.2 request 内置对象

  • 使用 JSP 的 request 内置对象,处理程序的交互请求
  • request 对象主要用于封装客户端浏览器请求中的数据
  • 在 JSP 中通过调用 request 对象的方法获取请求中的相关数据及浏览器的相关信息
  • request 对象常用的方法
方法名称 说明aa
String getParameter(String name) 根据表单组件名称(name)获取页面提交的数据
String [] getParameterValues(String name) 获取一组以相同名称命名的表单组件提交数据
void setCharacterEncoding(String charset) 指定每个请求的编码,在调用 getParameter() 方法之前进行设定
用于解决中文乱码的问题
RequestDispatcher getRequestDispatcher(String path) 返回一个 RequestDispatcher 对象,该对象的 forward() 方法用于
转发请求
  • 通过 request 对象的 setcharacterEncoding() 方法设置字符集,可以用来解决中午乱码问题
  • request 对象获取表单提交的数据

2.1.3 response 内置对象

  • JSP 当中,与 request 对象对应的就是 response 对象
  • 用于设置相应参数及获取响应流等
  • response 对象的常用方法
方法名称 说明
void setCharacterEncoding(String charset) 设置响应采用的字符编码类型
void sendRedirect(String location) 将请求重新定位到一个新的 URL 上
  • 重定向
    • response 对象的 sendRedirect() 方法可以将重请求重定向一个新的 URI 上

2.1.4 session 内置对象

  • session 对象是一个在 Web 应用程序中常用的概念,其作用是在客户端和服务器之间保持一段时间的会话状态。
  • session 对象一般被称之为 会话
  • request 保持的对象只存在单个请求和响应之间,响应之后就会被释放
  • session 对象的生命周期更长,通常在用户登录到系统并与系统交互时创建,并在用户退出或超时时销毁。
  • session 对象的常用方法
方法名称 说明
String getId() 获取 sessionid
long getCreationTime() 返回 session 对象被创建的时间,以毫秒为单位
void setMaxInactiveInterval(int interval) 设定 session 的有效非活动时间(死亡时间),以毫秒为单位
void invalidate() 设置 session 对象失效
void setAttribute(String key,Object value) 以 key/value 的形式将对象保存到 session 中
Object getAttribute(Stirng key) 通过 key 获取 session 中保存的对象
void removeAttribute(Stirng key) 从 session 中删除指定的 key 对应的对象
  • 会话并不是一直有效的,通常会话可能会超时或被手动设置销毁

  • 会话超时

    • 是指两次请求的时间间隔超过了服务器允许的最大时间间隔

    • session 过期时间可以通过三种方式进行设置

      1. 通过 session 对象的 setMaxInactiveInterval() 方法进行设置
      //设置 session 过期时间
      session.setMaxInactiveInterval(15*60)
      

      ​ 2.通过项目配置文件 web.xml 进行设置,以分钟为单位

      
      	10
      
      

      ​ 3.通过应用服务器进行设置

      // 在 Tomcat 目录/conf/web.xml 中找到  元素 如下
          
      	30
      
      
    • 以上三种方法更改 session 过期时间的优先级为: serMaxInactiveInterval()方法 > 项目配置文件 > Tomcat 配置文件

2.2 Cookie

2.2.1 Cookie 的概念

  • Cookie 是最常用的跟踪用户会话的方式
  • 由服务器端生成并发送给客户跟浏览器,浏览器将其保存为某个目录下的文本文件,并在后续请求相关网站时,跟随请求自动发送到 Cookie 数据到服务器中
  • 简单来说, Cookie 是将用户的信息存储在浏览器当中,即使你的网址关闭了,信息还是存在

2.2.2 使用 Cookie 存取数据

在 JSP 中使用 Cookie 存取数据的主要步骤

1. 创建 Cookie 对象

  • 创建 Cookie 对象语法如下
Cookie newCookie = new Cookie (String name,String Value);
  • 参数 那么代表 Cookie 的名称
  • 参数 value 代表该名对应的值

2. 将 Cookie 对象写入响应

  • 创建 Cookie 对象之后,可以通过 JSP 内置对象 response 的 addCookie() 方法将对象写入响应中
  • 示例
response.addCookie (newCookie);
  • Cookie 对象的几个常用方法
方法名称 说明
void setMaxAge(int expiry) 设置 Cookie 的有效期,以秒为单位
void setValue(String value) 在 Cookie 创建后,为 Cookie 赋予新的值
String getName() 获取 Cookie 的名称
String getValue() 获取 Cookie 的值
int getMaxAge() 获取 Cookie 的有效期,以秒为单位

3. 从请求中读取 Cookie 数据

  • Cookie 发送到客户端保存后,会自动随请求提交到相关网站上
  • 读取时需要调用 JSP 中 reques 对应的 getCookies() 方法,该方法将返回 HTTP 请求中的 Cookie 对象数组
  • Cookie 是通过 name/value 方式进行保存的,因而在遍历数组时,需要通过调用 Cookie 对象的 getName() 方法对每个数组成员的名称进行检查,直至找到需要的 Cookie,然后调用 Cookie 对象的 getValue() 方法取得对应的值

你可能感兴趣的:(JSP,java,servlet,开发语言)