[九大内置对象]session、application、pageContext

一、Session

1、理解

session:会话,会话主要指的是一段有开始有结束的过程。

在jsp技术中,会话特指一个用户从打开一个网站的任何一个页面开始,到关闭该网站的所有页面为止,算一次jsp中的会话。

2、会话的属性

只要在一次会话范围中,都可以获取

主要方法有:

setAttribute() 在会话范围中设置属性

getAttribute() 从会话范围中获取属性

removeAttribute() 从会话范围中删除指定的属性

会话其他方法:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<table border="1">
	<tr>
		<td>是否为新会话</td>
		<td><%=session.isNew() %></td>
	</tr>
	<tr>
		<td>会话创建时间</td>
		<td><%=session.getCreationTime()%></td>
	</tr>
	<tr>
		<td>会话上次访问时间</td>
		<td><%=session.getLastAccessedTime() %></td>
	</tr>
	<tr>
		<td>当前系统时间</td>
		<td><%=System.currentTimeMillis() %></td>
	</tr>
	<tr>
		<td>会话闲置时间</td>
		<td><%=System.currentTimeMillis() - session.getLastAccessedTime() %></td>
	</tr>
	<tr>
		<td>会话闲置时间是否超过5秒</td>
		<td><%
			if((System.currentTimeMillis() - session.getLastAccessedTime())>5000){
				// 会话失效
				session.invalidate();
			}else{
				out.print(System.currentTimeMillis() - session.getLastAccessedTime());
			}
			%>		
		</td>
	</tr>
</table>

二、application

又叫应用对象,应用范围

application的存活范围是内置对象中最长的,从部署web应用开始,到卸载web应用为止,算一次应用范围。

因此,只有重新部署web应用货值直接重启tomcat服务器,才能销毁application范围

主要方法有:

application.setAttribute();设置属性值

application.getAttribute();获取属性值

application.removeAttribute();移除属性值

application.getInitParameter(); 获取初始化参数。

application设置初始化参数时需要在web.xml中配置,web.xml是一个应用描述符,位置在WebRoot/WEB-INF/web.xml,对一个web应用的任何配置,都应该在web.xml中配置

初始化参数配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <context-param>
  	<param-name>aa</param-name><!-- 属性名 -->
  	<param-value>hello</param-value><!-- 属性值 -->
  </context-param>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file><!-- 这是欢迎页面 -->
  </welcome-file-list>
</web-app>
然后在任何一个jsp页面上使用application.getInitParameter(名字)即可获取到属性的值

(原因:当web应用被部署的时候,tomcat会自动读取web应用的web.xml配置文件,并且把所有初始化参数自动封装进application对象中。)

三、pageContext

页面范围:从进入一个jsp页面开始,到该jsp页面执行完毕,算一次页面范围。

通过pageContext可以获取4个范围中的数据:findAttribute()(pageContext特有的方法), 寻找的顺序是 从小到大,依次寻找,如果在小范围中已经找到数据了,就不会在继续寻找了。

通过pageContext还可以获取其他8个内置对象


这个功能的存在主要是为了在使用内置对象的时候,不用把所有的内置对象当成参数传递

pageContext.include就是java代码版本的动态包含

pageContext.forward() 就是java代码版本的转发






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值