JSP九大内置对象
JSP有九个内置对象(又叫隐含对象),不需要预先声明就可以在脚本代码和表达式中使用,分别有四个作用域对象【从小到大:pageContext、request、session、application】和五个其他对象【out、response、config、page、exception】
1、pageContext对象
作用:pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
生命周期:当前页面
2、request对象
作用:request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。生命周期:一次请求
常用方法如下:
//1、设置字符编号集utf-8,处理请求过程中的中文乱码
request.setCharacterEncoding("utf-8");
//2、按照参数名称,获取请求中的参数值
request.getParameter("");
//3、请求转发【服务器】:服务器端直接转发请求,跳转并执行新页面
request.getRequestDispatcher("list_product.jsp").forward(request,response);
//4、在请求转发前,存入KV键值对
request.setAttribute("key","value");
//5、在请求转发后,根据key获取value
request.getAttribute("key");
//6、获取当前应用在服务器端的真实路径
request.getRealPath("");
//7、项目运行时的应用的访问名称
request.getContextPath();
//8、获取当前请求的方式
request.getMethod();
//9、获取发起本次请求的客户端IP地址
request.getRemoteAddr();
//10、获取服务器本地的IP地址
request.getLocalAddr();
3、session对象
作用:session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的key为String类型,value值为Object类型。
生命周期:开始于客户端的第一次"请求";结束于 ①客户端浏览器关闭 ②客户端请求超时(Tomcat默认为30分钟) ③服务器关闭
常用方法如下:
//1、获取当前Session会话对象
HttpSessionsession=request.getSession();
//2、获取当前会话ID
session.getId();
//3、将当前KV键值对,存入Session会话(服务器端)
session.setAttribute("key","value");
//4、从当前Session会话中,根据key获取value
session.getAttribute("key");
//5、获取当前Session 的创建时间
newDate(session.getCreationTime());
//6、本次会话最后一次访问时间
newDate(session.getLastAccessedTime());
4、application对象
作用:application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长生命周期:开始于服务器启动;结束于服务器关闭
常用方法如下:
//1、获取application对象
ServletContextapplication=request.getServletContext();
//2、获取application的真实路径
application.getRealPath("");
//3、获取应用访问名称
application.getContextPath();
//4、获取Session超时时间
application.getSessionTimeout();
5、out
作用:out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
6、response
作用:response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
//1、设置字符编码集为utf-8,处理响应过程中的中文乱码
response.setContentType("text/html;charset=utf-8");
//2、获取响应输出对象
response.getWriter();
//3、重定向【客户端】:通知客户端浏览器,重新定向请求新的页面地址,响应(输出)新页面至客户端浏览器
response.sendRedirect("index.html");
7、config
作用:config 对象的主要作用是取得服务器的配置信息。通过 pageContext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。
8、page
作用:page 对象代表JSP本身,是当前页面的Servlet实例,只有在JSP页面内才是合法的。
9、exception
作用:exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。