JSP九大内置对象
JSP中一共预先定义了9个内置对象:内置对象,又叫做隐含对象,不需要预先声明就可以在脚本代码和表达式中使用request、response、session、application、out、pagecontext、config、page、exception
四个作用域对象
request
request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数
常用方法
// 将KV键值对,存入"request请求"范围内
request.setAttribute("key", "value");
//获取request范围内变量内的数据
request.getAttribute(String name);
//根据页面表单的组件名称获取页面提交的数据
request.getParameter(String name);
//获取一个页面表单对于多个值时的用户请求
request.getParameterValues(String name);
//指定请求的编码集,可用于处理中文乱码问题
request.setCharacterEncoding(env);
//获得一个RequestDispatcher对象,该对象的forward方法用于请求转发
request.getRequestDispatcher(path);
//获取本次发起请求的客户端IP地址
request.getRemoteAddr();
//获取服务器本地的IP地址
request.getLocalAddr();
session
session在网络中被称为会话。由于HTTP协议是一种无状态协议,当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去
会话的生命周期:
会话开始:客户端的第 1 次请求
会话结束:1.客户端浏览器关闭;2.客户端超时(Tomacat默认为30分钟)3.服务器关闭
获取当前Session会话对象
HttpSession session=request.getSession();
常用方法
//将当前KV键值对,存入Session会话(服务器端)
session.setAttribute("key", "value");
//从当前Session会话中,根据key获取value
session.getAttribute("key");
//返回session对象创建的时间(单位毫秒,格林尼治时间)
session.getCreationTime()
//获取本次会话最后一次访问时间
session.getLastAccessedTime()
application
application对象用于保存所有应用中的共有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”
获取当前application对象
ServletContext application=request.getServletContext();
常用方法
//获取session超时时间
application.getSessionTimeout();
//将KV键值对,存入"application应用"范围内
application.setAttribute("key", "value");
//从"application应用"范围内获取数据
application.getAttribute(String name);
pageContext
获取页面上下文的pageContext对象是一个比较特殊的对象,通过它可以获取JSP页面的request、response、session、out、exception等对象
作用域:只在当前页
// 将KV键值对,存入"pageContext"页面"范围内
pageContext.setAttribute("key", "value");
//获取参数值
pageContext.getAttribute();
五个其他对象
response
response对象用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效
常用方法
//重定向到指定页面
response.sendRedirect(String location);
//设置HTTP响应报头
response.setHeader(name, value);
//指定响应的编码集,可用于处理中文乱码问题
response.setContentType("text/html;charset=utf-8");
out
out对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区
常用方法
//输出
out.print();
//换行输出
out.println();
//刷新流
out.flush();
config
config对象主要用于取得服务器的配置信息
常用方法
//获取服务器中name参数的初始值
config.getInitParameter(name);
//获取服务器中所有参数的初始值
config.getInitParameterNames();
//获取Servlet上下文
config.getServletContext();
//获取Servlet服务器名
config.getServletName();
page
page对象代表JSP本身,只有在JSP页面内才是合法的。page对象本质上是包含当前Servlet接口引用的变量,可以看作是this关键字的别名
exception
异常对象,只有当前页面的page指令中isErrorpage=true,方可使用