jsp九大内置对象(二)session、application、pageContext

前面说到Jsp 的九大内置对象,分别是 request response、out、session、application page pageContent、exception、config。

按照功能划分:

输出输入对象: request对象、response对象、out对象

通信控制对象: pageContext对象、session对象、application对象

 Servlet对象:page对象、config对象

错误处理对象:exception对象

-------------------------------------------------------------------------------

session对象

学习session,需要了解session的生命周期,它有创建、活动、销毁三个阶段。

创建:当客户端第一次访问某个jsp或者servlet的时候,服务器自动为每个用户生成一个session对象。

活动:某次会话当中通过超链接打开的新页面属于同一次会话;本次会话页面全部关闭,再重新访问项目资源时会创建新的会话,否则与之前属于同一次会话。

销毁:session销毁有三种方式,session会话超时;调用session.invalidate()方法;服务器重启;

其中服务器重启会产生新的sessionid,但是旧的sessionid并没有被删除,只是失效了,在后台管理里可以找到它。等时限过去,才会自动删除。Tomcat默认session超时时间为30min,可以通过session.setMaxInactiveInterval(3);(括号里的时间单位是秒)来设置。

session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。session对象的方法使用如下:

session_Page1.jsp

<%	SimpleDateFormat saf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
	Date s=new Date(session.getCreationTime());
	String time=saf.format(s);
	session.setAttribute("name", "admin");
	session.setAttribute("password", "123456");
	session.setAttribute("favorite", "read");
	//设置session存活时间:
	session.setMaxInactiveInterval(3);//3秒钟就销毁这个session
%>
返回session创建的时间:<%=time %><br>
返回session的编号:<%=session.getId() %><br>
返回对象:<%=session.getAttribute("name") %><br>
<a href="session_page2.jsp" target=_blank>跳转到page2</a>

session_page2.jsp

<%	SimpleDateFormat saf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
	Date s=new Date(session.getCreationTime());
	String time=saf.format(s);
	//session.setAttribute("name", "admin");
%>
返回session创建的时间:<%=time %><br>
返回session的编号:<%=session.getId() %><br>
返回对象:<%=session.getAttribute("name") %><br>
返回所有对象:<%
		String[] user= session.getValueNames();
		for(int i=0;i<user.length;i++)
		{
			out.println(user[i]+"    ");			
		}
		%><br>

application 对象

application 对象ServletContext类的实例,实现了用户间数据的共享,可存放全局变量。开始于服务器的启动,终止于服务器的关闭。与session对象相比,application对象生命周期更长

<% 
		application.setAttribute("name", "软件过程管理");
		application.setAttribute("isbn", "123456");//ISBN编码乱写的
	%>
	书名为:<%=application.getAttribute("name") %><br>
	ISBN编码为:<%=application.getAttribute("isbn") %><br>
	application中的属性有:<%
	Enumeration attributes = application.getAttributeNames();
	while(attributes.hasMoreElements())
	{
		out.println(attributes.nextElement()+"   ");		
	}
	%>
	JSP的引擎名及版本号:<%=application.getServerInfo() %>

pageContext 对象

pageContext 对象提供了对JSP页面内所有对象及名字空间的访问,通过它可以访问到本页所在的session,也可以获取本页面所在的application的某一属性值。pageContext对象的本类名也叫pageContext

常用方法有:





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值