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

JSP中的九大内置对象和四大作用域

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、JSP9大内置对象
JSP9大内置对象分别为:request、response、session、application、out、pagecontext、config、page、exception
1、request对象
request 对象是 javax.servlet.httpServletRequest类型的对象。
 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。
2、response对象
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
3、session对象
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。
4、application对象
application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
5、out 对象
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
6、pageContext 对象
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
7、config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
8、page 对象
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
9、exception 对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

 

二、四大作用域
四大作用域page 、request 、session 、application 
1、如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。 从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
2、如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。
3、如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。
4、如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他人的数据。

转载于:https://my.oschina.net/lenglingx/blog/732607

相关文章:

  • Mysql 大数据量导入程序
  • 配置RD网关实现直接访问内网
  • ASP.NET配合CKEditor上传图片(二)
  • 导航状态尺寸
  • ubuntu下启动system-config-kickstart报错的解决办法
  • iOS - Swift NSPoint 位置
  • Zabbix自定义监控详解
  • 【NetApp】Actice Directory authentication
  • lua工具库penlight--07函数编程(一)
  • [LeetCode] NO. 169 Majority Element
  • apache添加 扩展php自定义的项目配置方法
  • 实现携程X分钟前有人预定功能
  • 怎么让块级元素水平和垂直都居中
  • 百度实习面经-JAVA研发方向
  • P1143 飘飘乎居士的约会
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Android组件 - 收藏集 - 掘金
  • docker python 配置
  • Docker 笔记(2):Dockerfile
  • ES6 ...操作符
  • export和import的用法总结
  • in typeof instanceof ===这些运算符有什么作用
  • Laravel 菜鸟晋级之路
  • magento 货币换算
  • scrapy学习之路4(itemloder的使用)
  • Spring Cloud中负载均衡器概览
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue学习系列(二)vue-cli
  • 测试开发系类之接口自动化测试
  • 记一次和乔布斯合作最难忘的经历
  • 聊聊flink的BlobWriter
  • 详解移动APP与web APP的区别
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 用 Swift 编写面向协议的视图
  • 用jquery写贪吃蛇
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 智能网联汽车信息安全
  • Mac 上flink的安装与启动
  • 移动端高清、多屏适配方案
  • (3)llvm ir转换过程
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (ZT)薛涌:谈贫说富
  • (分布式缓存)Redis持久化
  • (六)Hibernate的二级缓存
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (南京观海微电子)——I3C协议介绍
  • (七)Java对象在Hibernate持久化层的状态
  • (十六)Flask之蓝图
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)c52学习之旅-流水LED灯
  • (转)linux 命令大全
  • .net core控制台应用程序初识
  • .NET MVC 验证码
  • .Net 应用中使用dot trace进行性能诊断
  • .Net转前端开发-启航篇,如何定制博客园主题