您的位置:首页 > Web前端 > JavaScript

JSP学习(三)-----九大内置对象详解和四大作用域

2017-09-15 21:16 288 查看

简介

JSP隐含对象是Java对象的JSP容器使提供给开发者在每一个页面中,开发者可以直接调用它们而不需要被显式声明。

ps:在tomcat中,有提供给JSP转变成servlet类的jar包,该jar中可以看到JSP类是继承一个HttpJspBase类(该类是servlet的一个子类),这也验证了JSP其本质就是一个servlet实例。

四大作用域

1.page指当前页面有效,页面发生跳转就立即失效

2.request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中。在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。

3.Session是用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,默认session过期时间为30分钟,或调用HttpSession的invalidate()方法)。存放在HttpSession对象中

4.application是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中。它的存活时间是最长的,如果不进行手工删除,它们就一直可以使用

总结:当数据只需要在下一个forward有用时,用request就够了;

若数据不只是在下一个forward有用时,就用session。

上下文,环境信息之类的,用application。

具体使用方法:

page里的变量没法从index.jsp传递到test.jsp。只要页面跳转了,它们就不见了。

request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。

session的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。

application里的变量一直在累加,除非你重启应用,否则它会一直变大。

九大内置对象

上面我们提到,JSP在执行前会变被自动编译成一个servlet类,在这个servlet类中,它会自动给我们申明几个对象,也就是我们说的JSP九大内置对象,分别是request、response、out、session、page、pageContext、application、config、exception,下面我将详细介绍其中的几个内置对象:

request和response分别用来获取请求信息和设置响应信息

out就相当于一个PrintWriter对象实例,对页面进行信息输出

application代表整个应用程序对象,就是一个ServletContext实例,用于获取整个应用程序上下文信息。

config对象是javax.servlet.ServletConfig的实例化,用于当前页面的配置信息

pageContext是页面上下文对象,page代表整个当前页对象

session用于会话管理,一个会话指的是用户打开浏览器对网页进行访问到用户关闭浏览器整个过程就称为一次会话,而session就可以获取整个过程中所保留的信息,例如通过getAttribute方法获取设置的属性值,setAttribute方法在会话中添加某个属性,再如getLastAccessedTime()方法获取上次连接的时间

ps:cookie(点心)是存储在客户端计算机上的文本文件,对信息起到保存跟踪的目的,主要放在表单的请求头当中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息