二、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 进行设置,以分钟为单位

      <session-config>
      	<session-timeout>10</session-timeout>
      </session-config>
      

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

      // 在 Tomcat 目录/conf/web.xml 中找到 <session-config> 元素 如下
          <session-config>
      	<session-timeout>30</session-timeout>
      </session-config>
      
    • 以上三种方法更改 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() 方法取得对应的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值