JSP九大内置对象和四大作用域
Posted 奔跑的路奇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP九大内置对象和四大作用域相关的知识,希望对你有一定的参考价值。
JSP的原理
jsp在编译后会转换为java类,在本质上就是一个Servlet
当浏览器访问http://localhost:8080/index.jsp。服务器发现后缀为.jsp,它会根据路径找到index.jsp⽂件,会将index.jsp翻译成index_jsp.java⽂件,对这个java⽂件进⾏编译,产⽣⼀个index_jsp.class⽂件,将class⽂件加载运⾏。
JSP九大内置对象
page、config、request、response、session、application、out、pageContext 、exception
1.page页面对象
page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于this。
2.config配置对象
config对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() ⽅法可以获取⼀个config对象。当⼀个Servlet 初始化时,容器把某些信息通过config对象传递给这个Servlet。
3.request请求对象
request对象是HttpServletRequest类型的对象。该对象代表了客户端的请求消息,主要用于接收通过HTTP协议传送到服务器的数据(包括请求头消息,请求方式,请求参数等)。request对象的作用域为一次请求(一次请求可能包含一个页面,也可能包含多个页面)。
4.response响应对象
response对象是HttpServletResponse类型的对象,代表的是客户端的响应,主要是将JSP容器处理过的对象传回客户端。response对象其作用域只在JSP页面内有效。
5.session会话对象
session 对象是由服务器⾃动创建的与⽤户请求相关的对象。服务器为每个⽤户都⽣成⼀个session对象,⽤于保存该⽤户的信息,跟踪⽤户的操作状态。session对象内部使⽤Map类来保存数据,因此保存数据的格式为“Key/value”。 session对象的value可以使复杂的对象类型,⽽不仅仅局限
于字符串类型。
6.application全局对象
application对象可以将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似系统的 "全局变量"ServletContext。
application和request;session的区别:
request:单次请求。
session:浏览器访问期间(整个会话期间有效)。
application:服务器启动到关闭服务器期间全都有效,而且存储 的数据可以跨浏览器。
7.out输出对象
out 对象⽤于用于输出JSP页面的信息,并且管理应⽤服务器上的输出缓冲区。在使⽤ out 对象输出数据时,可以对数据缓冲区进⾏操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
8.pageContext页面上下文对象
pageContext 对象的作⽤是取得任何范围的参数,通过它可以获取 JSP⻚⾯的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP⻚⾯中可以直接使⽤pageContext对象。
9.exception异常对象
表示发生异常对象,类型 Throwable。作用域:page。
JSP四大作用域
JSP的四大作用域:pageContext、request、session、application。
这四个是因为其能存储数据,所以是jsp的四大作用域
1:pageContext: 如果把变量放到pageContext里,就说明它的作用域是page,代表变量只能在当前页面上生效。
2:request:代表变量能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,不同页面的跳转中都可以使用该变量
3:session:代表变量能在一次会话中生效,所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。
4:application:代表变量能在不同服务器下的都能够使用。列如:你用一个账号在谷歌游览器登录的CSDN后,在360,火狐…都能够登录,不用重复输入账号密码。只有当关闭了服务器或者手工删除了,才需要重新输入账号登录。
最后,如果有问题,希望指正,一起进步。
以上是关于JSP九大内置对象和四大作用域的主要内容,如果未能解决你的问题,请参考以下文章