二、JSP02 核心内置对象

news/2024/10/26 16:25:58/

二、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() 方法取得对应的值

http://www.ppmy.cn/news/74902.html

相关文章

明朝第一才子杨慎十首诗词

杨慎(1488&#xff5e;1559)&#xff0c;公认为明朝三大才子之首。“相如赋&#xff0c;太白诗&#xff0c;东坡文&#xff0c;升庵科第。”前面的几个大家可能都猜得出来&#xff0c;司马相如的赋&#xff0c;李白的诗&#xff0c;苏东坡的文&#xff0c;而所谓的“升庵科第”…

uniapp 快手授权登录,发布、编辑、裁剪图片和视频,分享 Ba-Kwai

简介&#xff08;下载地址&#xff09; 快手授权登录&#xff0c;发布、编辑、裁剪图片和视频&#xff0c;一键智能裁剪&#xff0c;分享私信&#xff0c;打开用户主页&#xff0c;挂载小程序等。自带选择图片和选择视频方法。 抖音授权登录、发布、分享 Ba-Aweme&#xff08…

如何让 300 万程序员爱上 CODING?

**《DNSPod十问》**是由腾讯云企业中心推出的一档深度谈话栏目&#xff0c;通过每期向嘉宾提出十个问题&#xff0c;带着广大读者站在产业互联网、科技领域精英的肩膀上&#xff0c;俯瞰各大行业发展趋势和前沿技术革新。 刘毅&#xff0c;腾讯云 CODING CEO、腾讯云开发者产品…

元宇宙中的大数据、边缘计算和存储技术

随着元宇宙的快速发展&#xff0c;大数据、数据存储和边缘计算技术在其中的应用变得越来越重要。这些技术的应用不仅可以提高元宇宙的性能和效率&#xff0c;还可以为元宇宙的未来发展提供支持和保障。本文将详细解释大数据、数据存储和边缘计算技术在元宇宙中的应用。 一、大数…

深度学习-tensorflow 使用keras进行深度神经网络训练

概要 深度学习网络的训练可能会很慢、也可能无法收敛&#xff0c;本文介绍使用keras进行深度神经网络训练的加速技巧&#xff0c;包括解决梯度消失和爆炸问题的策略&#xff08;参数初始化策略、激活函数策略、批量归一化、梯度裁剪&#xff09;、重用预训练层方法、更快的优化…

小鱼说|城市产业带与供应链系统的结合模式(2)

上一篇讲到城市产业带 的形成以及讲到 它与供应链的关系 那么我们继续把 这个话题深化一下 从原厂地到供应商 到供应链再到商城平台 城市产业带是供货的源地 经过最多二级的供应商上架 到供应链再经过最多二级的 经销商流入到各大商业平台 由于一个供应链可对接多个城市产业带 …

操作系统易错题

操作系统易错题 假设某硬盘由5个盘片构成&#xff08;共有8个记录面&#xff09;&#xff0c;盘面有效记录区域的外直径为30cm&#xff0c;内直径为10cm&#xff0c;记录位密度为250位/mm&#xff0c;磁道密度为16道/mm&#xff0c;每磁道分16个扇区&#xff0c;每扇区512字节&…

Nacos集群和持久化配置

1.Nacos集群 1.1.架构说明 官方文档 集群部署架构图 因此开源的时候推荐用户把所有服务列表放到一个vip下面&#xff0c;然后挂到一个域名下面 http://ip1:port/openAPI直连ip模式&#xff0c;机器挂则需要修改ip才可以使用 http://VIP:port/openAPI挂载VIP模式&#xff0c;直…