按照功能划分:
输出输入对象: 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。
常用方法有: