jsp内置对象

jsp为了简化开发,提供了9种内置对象,这些内置对象将由容器为用户进行实例化,直接调用即可,不用java程序那样使用new关键字进行实例化后才可以使用:

  • 九种内置对象  

 

No
内置对象
类型
描述
1
pageContext
javax.servlet.jsp.PageContext; 
jsp的页面容器
2
request
import javax.servlet.http.HttpServletRequest;
得到用户的请求信息
3
response
import javax.servlet.http.HttpServletResponse;
服务器想客户端的响应信息
4
session
javax.servlet.http.HttpSession;
保存每一个用户的信息
5
application
javax.servlet.ServletContext;
表示所有用户的共享信息
6
config
javax.servlet.ServletConfig;
服务器配置,可以取得初始化参数
7
out
javax.servlet.jsp.JspWriter;
页面输出
8
page
java.lang.Object
表示从该页面中表示出来的一个servlet实例
9
exception
java.lang.Throwable
表示jsp页面所发生的异常,只有在错误页中才有效
  • 四种属性保存范围  

什么是属性保存范围?

   就是一个内置的对象,可以在多少个页面中保存并继续使用;

  1. page:只在一个页面中保存属性,跳转后无效;
  2. request:只在一次请求中保存,服务器跳转后依然后效;
  3. session:在一次会话范围中,无论何种跳转都可以使用,但是新开的浏览器无法使用;
  4. application:在整个服务器上保存,所有用户都可以使用;

1,page属性范围(pageContext)

表示将一个属性设置在本页上,跳转之后无法取得;

例如:pageScope.jsp:(设置和取得page范围的属性)

 

  <body>
	<%	//设置page属性范围,此属性只在当前的JSP页面中起作用
		pageContext.setAttribute("name","keith");
		pageContext.setAttribute("date",new Date());
	 %>
	 <%	//从page中取出属性,并执行向下转型操作
	 	String username = (String)pageContext.getAttribute("name");
	 	Date time = (Date)pageContext.getAttribute("date");
	  %>

  <h2>username:<%=username%></h2><%--取得属性内容 --%>

  <h2>time:<%=time%></h2>

</body>

 

会输出:

username:keith

time:Tue Jan 11 22:08:28 CST 2011

验证下page的范围(page.jsp):

 

  <body>
	<%	//设置page属性范围,此属性只在当前的JSP页面中起作用
		pageContext.setAttribute("name","keith");
		pageContext.setAttribute("date",new Date());
	 %>

	  <jsp:forward page="pageScope.jsp"></jsp:forward>
  </body>

 

 看下pageScope.jsp:

 

 

	<body>
	 <%	//从page中取出属性,并执行向下转型操作
	 	String username = (String)pageContext.getAttribute("name");
	 	Date time = (Date)pageContext.getAttribute("date");
	  %>
	  
	  <h2>username:<%=username%></h2><%--取得属性内容 --%>
	  <h2>time:<%=time%></h2>
</body>

 

 这个时候,输出的全是null值;因为page范围在跳转后无效;

深入page属性范围:

page属性范围中使用的是pageContext进行属性设置的,但是javax.servlet.jsp.PageContext类中可以发现,有这样的一个方法:public void setAttribute(String name,Object value,int scope);与之前所使用的setAttribute()方法不同,在这个方法里面有一个int整型变量,此变量就可以指定一个属性的保存范围,在pageContext类中存在4个表示属性范围的常量,可以直接通过这些常量指定scope的内容;如:

No方法类型描述
1public static  final int PAGE_SCOPE 常量表示page属性范围,默认
2public static final int REQUEST_SCOPE常量表示request属性范围
3public static final int SESSION_SCOPE常量表示session属性范围
4public static final int APPLICATION_SCOPE常量表示application属性范围

 

	<%	//设置page属性范围,此属性只在当前的JSP页面中起作用
		pageContext.setAttribute("name","keith",PageContext.REQUEST_SCOPE);
		pageContext.setAttribute("date",new Date(),PageContext.REQUEST_SCOPE);
	 %>
  <jsp:forward page="pageScope.jsp"></jsp:forward>
 当跳转到pageScope.jsp页面时,会接受到值,实际上pageContext对象可以设置任意范围的属性,而其他操作也只是对这一功能再包装而已;但是一般还是将pageContext只保存一页的范围属性;

2,request的属性范围!

在服务器端跳转后想让属性继续保存下来,则可以使用request属性范围操作(request属性范围表示服务器跳转后,所有设置的内容依然会被保留下来);

测试,request.jsp:

 

<body>
	<% 
		request.setAttribute("name","keith"); 
		request.setAttribute("date",new Date()); 
	 %>
	 <jsp:forward page="requestScope.jsp"></jsp:forward>
</body>

 

 requestScope.jsp:

 

	<body>
	<% 
		String name  = (String)request.getAttribute("name");
		Date date = (Date)request.getAttribute("date");
	 %>
	 username:<%=name %>
	 time:<%= date %>
</body>

 

 输出的结果是:username:keith time:Tue Jan 11 22:18:42 CST 2011;以为request在一次服务器跳转范围内有效,所有requestScope.jsp是可以取到属性的;如果将其超连接换成:

 

<a href="requestScope.jsp"></a>

 

 是无法取到的,因为它不是一个服务器跳转;

理解:request表示客户端的请求,正常情况下,一次请求服务器只会给予一次回应,那么这时如果是服务器端跳转,请求的地址栏没有改变,所有也就相当于回应了一次,如果地址栏改变了,则相当于发出了第二次请求,则第一次请求的内容肯定就已经消失了,所有无法获取;

3,session的属性范围;

如果希望一个属性在设置后,可以在任何一个与设置页面相关的页面中取得,则可以使用session属性范围。使用session设置属性后,不管是客户端跳转还是服务器端跳转,只要属性设置了就可以取得;

测试,session.jsp:

 

	<body>
	<%
		session.setAttribute("name","keith");
		session.setAttribute("date",new Date());
	 %>
	 <%
		String name = (String)session.getAttribute("name");
		Date date = (Date)session.getAttribute("date");
	 %>
	name: <%= name%>
	date:<%=date %>
	<br>
	 <a href="sessionScope.jsp">sessionScope测试</a>
</body>

 

 本也显示的内容:

 

name: keith date:Tue Jan 11 22:30:52 CST 2011 
sessionScope测试

 

 指定连接的sessionScope.jsp:

 

<body>
	<%
		String name = (String)session.getAttribute("name");
		Date date = (Date)session.getAttribute("date");
	 %>
	name: <%= name%>
	date:<%=date %>
</body>

 

 则输出的结果是:

 

name: keith date:Tue Jan 11 22:30:52 CST 2011 

 

 此时如果在打开一个新的浏览器直接访问sessionScope.jsp则无法获取session属性;

4,application属性范围

如果希望一个属性可以让所有的用户(每一个session)都看得见;则可以将这个属性设置成application,这样属性即可保存在服务器上;

 

测试:application.jsp:

 

	<body>
	<%
		application.setAttribute("name","keith");
		application.setAttribute("date",new Date());
	 %>
	 <a href="applicationScope.jsp">applicationScope测试</a>
</body>

 

 applicationScope.jsp:

 

		<%
		String name = (String)application.getAttribute("name");
		Date date = (Date)application.getAttribute("date");
	 %>
	 name:<%=name %>
	 date:<%=date %>
输出结果: 

 

 

name:keith date:Tue Jan 11 22:39:49 CST 2011 
无论你重新打开浏览器,还是直接根据URL跳转,都可以获取到application的值(如果服务器重启的话,application属性值将消失);application范围的属性设置过多会影响服务器性能。因为application属性范围是将属性设置到一个服务器中!

 

 

 

MATLAB 论文复现——面向电量-调频-容量市场的数据中心园区算力及电力资源规划 如何在保证数据中心服务质量的前提下,考虑数据中心负荷转移特性,并对其进行合理规划,对降低数据中心规划总成本及提升新型电力系统灵活性均有显著意义。然后,根据不同电力市场的结算规则,研究了数据中心园区参与电量-调频-容量市场的方式和经济收益。在此基础上,以综合成本最小化为目标,优化数据中心园区发电机、储能的建设容量以及服务器的建设数量。最后,以阿里巴巴公开运行数据为例,证明考虑多元电力市场能够大大降低数据中心规划成本,激励数据中心园区投资建设更多灵活性资源,为电网提供有效的调频服务和容量支撑。 阅读详情

相关推荐

Python爬虫实战:如何优雅地处理BOSS直聘的反爬机制与Cookie失效问题

本文详细介绍了如何通过Python爬虫技术优雅应对BOSS直聘的反爬机制与Cookie失效问题。从多账号轮换、动态请求头生成到代理IP管理,提供了一套完整的解决方案,帮助开发者构建稳定高效的数据采集系统,有效提升爬虫成功率与数据质量。

weixin_30733003的博客 1562

JSP九大内置对象

JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态创建Web页面内容。但Java语法在使用一个对象前,需要先实例化这个对象,这其实是一件比较烦琐的事情。JSP为了简化开发,提供了一些内置对象,用来实现很多JSP应用。在使用JSP内置对象时,不需要先定义这些对象,直接使用即可。 在JSP中一共预先定义了...

pan_junbiao的博客 7万+

手把手教你用FPGA解析AD9680的JESD204B数据流(附Verilog代码)

本文详细介绍了如何利用FPGA解析AD9680的JESD204B数据流,包括协议核心机制、硬件平台搭建、Verilog代码实现及调试技巧。通过实战案例和代码示例,帮助工程师快速掌握高速ADC数据采集与处理技术,提升系统性能。

weixin_33640562的博客 372

JSP的内置对象

文章目录一. 概述1. 定义2. 特点二. JSP九大内置对象1. out对象2. request对象(1). 定义(2). 对应的类型(3). request获取客户端信息的常见方法1. String getParameter(String name)2. String[] getParameterValues(String name)3. void setCharacterEncoding("编码格式utf-8")4. getRequestDispatcher("B.jsp").forward(requ

巧克力布丁的博客 4608

oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client

oracle64位 客户端安装程序,Instant Client v11.2.0.3.0(64-bit)可以用,bo客户端需要配这个的,所以装了一个,64位操作系统中、不安装Oracle-32bit客户端,方便使用PLSQL Developer(不支持64bit位Oracle客户端)安装教程安装配置instantclient下载后,解压到D:\Oracle\instantclient_11_2(特...

weixin_42573757的博客 4516

告别JavaScript!C#通过WebAssembly在浏览器中实现“原生级“性能

C# + WebAssembly:前端开发的革命性替代方案 摘要:本文探讨了C#通过WebAssembly取代JavaScript开发前端应用的新趋势。文章分析了JavaScript的局限性(弱类型、回调地狱等),并详细介绍了C#+WebAssembly组合的优势:强类型系统、高性能、多线程支持和代码重用。技术实现方面,阐述了C#通过Mono/.NET编译为WebAssembly字节码的原理,重点介绍了Blazor框架的两种模式。文章还提供了实战指南,包括项目创建、多线程配置,以及一个与ChatGPT AP

墨夶的博客 946

【JSP进阶】JSP九大内置对象,这你也不知道?

所谓内置对象就是在JSP中无需创建就可以直接使用的九个对象

apple_51673523的博客 3617

【数字IC验证快速入门】26、SystemVerilog项目实践之AHB-SRAMC(6)(AHB-SRAMC SVTB Overview)

导读:作者有幸在中国电子信息领域的排头兵院校“电子科技大学”攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思、清华紫光、联发科技等业界顶尖集成电路相关企业面授课程,对数字IC验证有了一些知识积累和学习心得。为帮助想入门前端IC验证的朋友,思忱一二后,特开此专栏,以期花最短的时间,走最少的弯路,学最多的IC验证技术知识。 文章目录一、内容概述二、AHB-SRAMC 验证计划 一、内容概述 AHB-SRAMC 验证计划 AHB-SRAMC 验证平台的架构图 AHB-SRAMC 验证平台的代.

悟已往之不谏 知来者之可追 2652

JSP 的其他内置对象

该文总结了 JSP 内置对象中的其他常见的对象,如 pageContext、config、page、exception 对象。自此,关于 JSP 的内置对象的简单了解目前告一段落了。一、获取会话范围的 pageContext 对象pageContext 对象可以获取 JSP 页面的 request、response、session、application、exception 等对象。属性的管理:可以使用对象来设置、获取和删除JSP页面中的属性。

weixin_74141222的博客 1045

一次请求穿过的六道关卡:微服务基础组件的通信与IO、事件驱动、负载均衡、服务路由、API网关与配置协调

微服务的稳定性往往取决于看不见的基础组件。本文跟随一次下单请求,依次穿过API网关、服务路由、负载均衡与服务通信,再沿事件分支扇出,并从控制面审视配置中心。通信层剖析握手成本、连接复用、epoll与主从Reactor、心跳判活、退避抖动、截止时间与重试预算;事件层讲解编舞与编排、事务发件箱和幂等消费;均衡与路由对比静态与动态算法、路由链、全链路灰度与同区保底;网关讨论过滤器链与限流算法;配置部分给出四类配置、长轮询与共识协调,最后归纳五道防线。文中关键数据均来自可在Java8运行的演示程序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

构建基于知识图谱的金融风险关联网络

在金融领域,风险的识别和管理至关重要。传统的风险分析方法往往只能处理单一维度的数据,难以全面捕捉金融市场中复杂的风险关联关系。构建基于知识图谱的金融风险关联网络的目的在于整合多源异构的金融数据,通过知识图谱的方式清晰地展示金融实体之间的复杂关系,从而更准确地识别潜在的金融风险,为金融机构的风险管理决策提供有力支持。本项目的范围涵盖了从金融数据的收集、预处理,到知识图谱的构建,再到金融风险关联网络的搭建和分析。

SuperAGI2025 1421

jsp九大内置对象_jsp的内置对象

01out内置对象out:out.print(“输出的内容”);可以直接在jsp页面中直接显示内容。02requset内置对象解决乱码:request.setCharacterEncoding(“utf-8”);获取form表单里面的值:Stringname = request.getParameter(“name”);括号里面的参数是表单里面name的值。获取一组表单提交的数据:St...

weixin_40004960的博客 98

“反激电源”是AC/DC隔离电源还是DC/DC隔离电源?

所以在一些场景,我们的输入电压是一个DC,但是我们仍然需要隔离电源的需求,我们就会只采用图9.2的右半部分。在这个场景下“反激电源”是DC/DC。所以此AC/DC的本质是将AC变成高压的DC之后,用带隔离变压器的反激式开关电源产生一个隔离的、稳定的直流电压。一般在讲述各种电源的拓扑的文章和书籍都是在讲述AC/DC的电源拓扑分类的时候,讲述Flyback。反激式开关电源是指使用反激高频变压器隔离输入输出回路的开关电源,反激式隔离变压器开关电源重点表述的是开关电源包含变压器的拓扑结构。

qq_43416206的博客 1295

JSP(4)_JSP 内置对象

JSP JSP 内置对象 ● 什么是内置对象(面试常问) 内置对象是在 JSP 页面中无需创建就可以直接使用的变量。在 JSP 中一共有 9 个这样的对象!它们分别是: out(JspWriter); config(ServletConfig); page(当前JSP的真身类型); pageContext(PageContext); exception(Throwable); request(...

魏宇轩 616

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jsp的内置对象

jsp的内置对象和对象的作用域

一路坎坷的小白 461

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JSP的九大内置对象

JSP 中定义了 9 个内置对象,它们分别是:request、response、session、application、out、pagecontext、config、page 和 exception,这些对象在客户端和服务器端交互的过程中分别完成不同的功能。JSP 内置对象又称为隐式对象,它们由容器实现和管理。在 JSP 页面中,这些内置对象不需要预先声明,也不需要进行实例化,可以直接在小脚本和表达式中使用。JSP 中的 4 个域对象都能通过以下 3 个方法,对属性进行保存、获取和移除操作。

qq_44648984的博客 2451

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jsp 内置对象总结

1、什么是内置对象         在jsp开发中会频繁使用的到一些对象。如果每次使用这些对象都要去先创建这些对象就会显得很麻烦。sun公司设计jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可,这些对象叫内置对象。 2、九大内置对象简介  内置对象名    类   作用域

gxc312648465的博客 1369

JSP内置对象和使用

JSP内置对象和使用1. 9大内置对象2. 4大域对象3. pageContext 域对象4. jsp优化登录案例 1. 9大内置对象 能够在jsp页面上直接使用这些对象,一共有9个。 9大对象就是jsp页面翻译成java文件中创建的对象,所以可以可以在jsp页面中直接使用。 page:页面对象,java.lang.Object类型的page对象 request:HttpServletReque...

Hello, New World! 669
上一篇: jsp之page指令
下一篇: jsp之request对象
keithJava
博客等级 码龄16年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值