四个作用域对象:
主要作用:用来存值。(作用域:能在多大的范围内存值)
1.pageContext:将值以KV键值对的形式,存入到当前页面。
pageContext.setAttribute("key","value");
pageContext.getAttribute("key");
2.request:将KV键值对,存入"request请求"范围内。
// 在请求转发前,存入KV键值对
// request.setAttribute("key","value");
// 在请求转发后,根据key获取value
// request.getAttribute("key");
request的生命周期:
生:客户端发起一次请求
死:服务器端给回响应给客户端(响应完毕,request的生命周期结束)
request的常见方法:
// 按照参数名称,获取请求中的参数值
// request.getParameter("");
// 根据目标地址,获取RequestDispatcher请求转发对象
// request.getRequestDispatcher("");
// 在请求转发前,存入KV键值对
// request.setAttribute("key","value");
// 在请求转发后,根据key获取value
// request.getAttribute("key");
// 获取当前应用在服务器端的真实路径
StringrealPath=request.getRealPath("test");
System.out.println("应用在服务器端的真实路径:"+realPath);//获取的不是应用的工作空间路径
//D:\java编程\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JavaEE_ServletLearn03\test
//获取项目运行时的应用访问名称
StringcontextPath=request.getContextPath();
System.out.println("项目运行时的应用访问名 称:"+contextPath);// /servlet003
//获取当前的请求方式
Stringmethod=request.getMethod();
System.out.println("当前的请求方式:"+method);
//获取发起本次的请求的客户端IP地址
Stringremote=request.getRemoteAddr();
System.out.println("客户端的IP地址:"+remote);
//获取服务器本地的IP地址
Stringlocal=request.getLocalAddr();
System.out.println("服务器的IP地址:"+local);
3.session:将KV键值对,存入“session会话”范围内,对于同一个客户端,一次会话包含若干次“请求”。
session的生命周期:
生:客户端在第一次浏览时,第一次发起请求时,会创建一个session (一个session在服务器端都有一个独一无二的标志,同一个用户多次请求,对应的是同一个session。不同的客户发起起请求,对应的是不同的session) ==>同一个客户端,一次会话包含若干次请求
死:1.客户端浏览器关闭
2.服务器关闭
3.客户端超时(Tomcat默认时间为30分钟)
session的常见方法:
//获取session对象
HttpSessionsession=request.getSession();
System.out.println("sessionId:"+session.getId());
//将当前的KV键值对,存入Session会话(数据存放在服务器端)
//session.setAttribute("uid", "root");
//从当前Session会话中,根据key获取value
//session.getAttribute("uid");
//将getCreationTime()获得的long类型的格林尼治时间转换为Date
DatecreationTime=newDate(session.getCreationTime());
//同一个客户端的多次请求访问,获得的Session创建时间是相同
//因为同一个客户端的对次请求,对应的是同一个Session (同一个用户创建一个Session)
System.out.println("Session的创建时间:"+creationTime);
//将getLastAccessedTime()获得的long类型的格林尼治时间转换为Date
//获取的是上一次的时间
DatelastAccessedTime=newDate(session.getLastAccessedTime());
System.out.println("本次会话最后一次访问时间:"+lastAccessedTime);
4.application:将KV键值对,存入"application应用"范围内
// 将KV键值对,存入"application应用"范围内
application.setAttribute("key","value");
application.getAttribute("key");
application的生命周期:1.随着服务器的启动而开始2.随着服务器的关闭而结束application的常见方法:
ServletContextapplication=request.getServletContext();
StringrealPath=application.getRealPath("");
System.out.println("应用真实路径:"+realPath);
System.out.println("应用访问名称:"+application.getContextPath());
System.out.println("Session超时时间:"+application.getSessionTimeout());
四个作用域对象的大小区域:Application>session>request>pageContext
五个其他内置对象:
out:主要用于输出
response:只要做出响应
config:配置信息
page:代表当前页面(当前JSP页面所对应的Servlet实例)
exception:异常对象,只有当前页面的page指令中isErrorpage=true,方可使用