当前位置: 首页 > news >正文

JavaWeb学习打卡14(JSP内置对象及作用域)

JSP 中9 大内置对象

  • PageContext          // 用来存东西
  • Request                 // 用来存东西
  • Response
  • Session              // 用来存东西
  • Application  (ServletContext)  // 用来存东西
  • config         (ServletConfig)
  • out
  • page
  • exception

有  存取功能的内置对象  的实例:

先创建一个 pageContextDemo01.jsp 文件 :

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%--内置对象--%>
<%pageContext.setAttribute("name1","小许1号");//保存的数据只在一个页面中有效request.setAttribute("name2","小许2号");    //保存的数据只在一次请求中有效,请求转发会携带这个数据session.setAttribute("name3","小许3号");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器application.setAttribute("name4","小许4号");//保存的数据只在服务器中有效,从打开服务器到关闭服务器,数据才回丢失
%><%--脚本片段中的代码,会被原封不动的生成到 .JSP文件 .java文件中
要求:脚本片段中的代码:必须保证Java语法的正确性
--%><%//从pageContext 取出,我们通过寻找的方式(findAttribute)来取//从作用域的底层到高层寻找   page --> request --> session --> applicationString name1 = (String) pageContext.findAttribute("name1");String name2 = (String) pageContext.findAttribute("name2");String name3 = (String) pageContext.findAttribute("name3");String name4 = (String) pageContext.findAttribute("name4");String name5 = (String) pageContext.findAttribute("name5"); //不存在
%><%--使用EL表达式 输出  ${}--%>
<h1>取出的值为:</h1>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
<%--<h3>${name5}</h3>   //EL表达式会过滤掉不存在值--%>
<%--使用JSP表达式取不存在的值,不会被过滤,会在网页上显示 默认值null--%>
<h3><%=name5%></h3></body>
</html>

运行结果:

作用域等级:

 从底层到高层: page --> request --> session --> application

我们可以用  pageContext.setAttribute( )   来指定它的作用域

<%//设置作用域为 session /**public static final int PAGE_SCOPE = 1;*public static final int REQUEST_SCOPE = 2;*public static final int SESSION_SCOPE = 3;*public static final int APPLICATION_SCOPE = 4;*/pageContext.setAttribute("hello1","hello1",PageContext.SESSION_SCOPE);
%>

两种页面跳转的实现方式,新建一个 jsp 文件 ,增加以下代码,可使其跳转到 indext.jsp 文件页面 

<%//在前端 jsp中可直接通过pageContext.forward() 就可以实现页面转发pageContext.forward("/indext.jsp");//上下这两句代码的效果都是一样的,两种不同的实现方式//request.getRequestDispatcher("/indext.jsp").forward(request,response);
%>

常用内置对象的应用场景

  • page(用不上,不用了解)
  • request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完就没用的
  • session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:;购物车;
  • application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据;
http://www.dtcms.com/a/296971.html

相关文章:

  • ARM汇编常见伪指令及其用法示例
  • IntelliJ IDEA中管理多版本Git子模块的完整指南
  • 智慧工厂网络升级:新型 SD-WAN 技术架构与应用解析
  • 商场导航软件:3D+AI 基于Deepseek 模型的意图识别技术解析
  • BacNet 是什么?跟 LoRaWAN 的关系是什么?
  • 将JS字节流转化为对象
  • 西安交通大学XJTU 通信/信息工程大三和部分大四 实验和课程答案
  • C++哪些运算符不能被重载?
  • kubernetes集群中部署CoreDNS服务
  • day46day47 通道注意力
  • 一种基于单片机控制的太阳能电池板系统设计
  • 集训Demo6
  • 挖掘录屏宝藏:Screenity 深度解析与使用指南
  • 《计算机网络》实验报告八 加密、数字签名与证书
  • pytest测试框架
  • AUTOSAR进阶图解==>AUTOSAR_SWS_BSWGeneral
  • 【Vue学习笔记】状态管理:Pinia 与 Vuex 的使用方法与对比【附有完整案例】
  • 网络安全入门第一课:信息收集实战手册(2)
  • C语言-指针[变量指针与指针变量]
  • Java 集合框架之----ArrayList
  • Effective Modern C++ 条款16:保证const成员函数的线程安全性
  • 网址收集总结
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-17,(知识点:PCB布线,传输线阻抗影响因素)
  • 第一二章笔记
  • [ComfyUI] --ComfyUI 是什么?比 Stable Diffusion WebUI 强在哪?
  • 【STM32项目】智能台灯
  • 无人机保养指南
  • 深入解析Hadoop NameNode的Full GC问题、堆外内存泄漏及元数据分治策略
  • 软件测试的分类
  • C++实现精确延时的方法