-
什么是内置对象?
JSP 提供了由容器实现和管理的内置对象,也可以称之为隐含对象,由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态创建Web页面内容。但Java语法在使用一个对象前,需要先实例化这个对象,这其实是一件比较烦琐的事情。JSP为了简化开发,提供了一些内置对象,用来实现很多JSP应用。在使用JSP内置对象时,不需要先定义这些对象,直接使用即可
-
四个作用域对象:
-
request对象
request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
// 设置中文编码 request.setCharacterEncoding("utf-8"); // 按照参数名称,获取获取请求中的参数值 request.getParameter(""); // 根据目标地址,获取RequestDispatcher请求转发对象 request.getRequestDispatcher(""); // 在请求转发前,存入KV键值对 request.setAttribute("key","value"); // 在请求转发后,根据key获取value request.getAttribute("key"); // 获取当前应用在服务器端的真实路径 String realPath = request.getRealPath(""); System.out.println("项目运行时的服务器真实路径:" + realPath); //获取项目运行时的应用的访问名称 String contextPath = request.getContextPath(); System.out.println("项目运行时的应用的访问名称:" + contextPath); //当前请求的方式 String method = request.getMethod(); System.out.println("当前请求的方式:" + method); // 获取发起本次请求的客户端IP地址 String remote = request.getRemoteAddr(); System.out.println("客户端的IP地址:"+remote); // 获取服务器本地的IP地址 String local = request.getLocalAddr(); System.out.println("服务器的IP地址:"+local);
-
session对象
指的是客户端与服务器的一次会话 , 一次"会话"包含若干次"请求"。从客户连接到服务器的一个 WebApplication 开始 , 直到客户端与服务器断开连接为止 ; 它是 HTTPSession 类的实例 , 作用域为 session ( 会话期 )
Session会话的生命周期:
会话开始:客户端的第1次"请求"
会话结束:1.客户端浏览器关闭;2.客户端超时(Tomcat默认为30分钟);3.服务器关闭;// 获取当前Session会话对象 HttpSession session = request.getSession(); System.out.println("Session ID: "+session.getId()); //将当前KV键值对,存入Session会话(服务器端) session.setAttribute("key", "value"); //从当前Session会话中,根据key获取value session.getAttribute("key"); Date creationDateTime = new Date(session.getCreationTime()); System.out.println("Session 的创建时间:"+creationDateTime); Date lastAccessedDateTime = new Date(session.getLastAccessedTime()); System.out.println("本次会话最后一次访问时间:" + lastAccessedDateTime); //使用Session保存访问次数 HttpSession session = request.getSession(); int count = 0; if (session.getAttribute("count") != null) { // 获取之前存储的数值 count = Integer.parseInt(session.getAttribute("count").toString()); // 重新保存 session.setAttribute("count", ++count); }else { // 第一次保存 session.setAttribute("count", ++count); } //设置中文编码 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.print("您的访问次数为:<strong>"+session.getAttribute("count")+"</strong>");
-
application对象
实现了用户间数据的共享 , 可存放全局变量 ; 它开始于服务器的启动 , 直到服务器的关闭 , 在此期间 , 此对象将一直存在 ; 这样在用户的前后连接或不同用户之间的连接中 , 可以对此对象的同一属性进行操作 ; 在任何地方对此对象属性的操作 , 都将影响到其他用户对此的访问 ; 服务器的启动和关闭决定了 application 对象的生命 ; 它是 ServletContext 类的实例。
//使用application对象保存访问次数 ServletContext application = request.getServletContext(); int count = 0; if (application.getAttribute("count") != null) { // 获取之前存储的数值 count = Integer.parseInt(application.getAttribute("count").toString()); // 重新保存 application.setAttribute("count", ++count); } else { // 第一次保存 application.setAttribute("count", ++count); } //获取application应用的真实路径 String realPath = application.getRealPath(""); System.out.println("应用真实路径:" + realPath); //获取应用访问名称 System.out.println("应用访问名称:" + application.getContextPath()); //获取ession超时时间 System.out.println("Session超时时间:" + application.getSessionTimeout());
-
pageContext 对象
提供了对 JSP 页面内所有的对象及名字空间的访问 , 也就是说他可以访问到本页所在的 session , 也可以取本页面所在的 application 的某一属性值 , pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
// 将KV键值对,存入"pageContext"页面"范围内 pageContext.setAttribute("key", "value");
-
五个其它内置对象:
-
config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。
-
out对象:
out 对象是 JspWriter 类的实例,是向客户端输出内容常用的对象 ;用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
PrintWriter out = response.getWriter(); out.print("<script>"); out.print(" alert('修改成功');"); out.print(" location='list_product.jsp';"); out.print("</script>");
-
response 对象:
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
//处理响应过程中的中文乱码 response.setContentType("text/html;charset=utf-8"); //获取响应输出对象 PrintWriter out = response.getWriter(); //重定向客户端的请求 response.sendRedirect("product.html");
-
page 对象
page 对象代表JSP本身,只有在 JSP 页面内才是合法的。 page 对象本质上是包含当前 Servlet 接口引用的变量,可以看作是 this
关键字的别名
。 -
exception 异常对象
exception 对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置 isErrorPage属性值为true的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。exception对象几乎定义了所有异常情况,在Java程序中,可以使用try...catch关键字来处理异常情况,如果在JSP页面中出现没有捕获到的异常,就会生成exception对象,并把exception对象传送到在page指令中定义的错误页面中,然后在错误页面中处理相应的exception对象。
Jsp 九大内置对象
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...