jsp中的隐含对象

上传人:第*** 文档编号:54481400 上传时间:2018-09-13 格式:PPT 页数:40 大小:533.50KB
返回 下载 相关 举报
jsp中的隐含对象_第1页
第1页 / 共40页
jsp中的隐含对象_第2页
第2页 / 共40页
jsp中的隐含对象_第3页
第3页 / 共40页
jsp中的隐含对象_第4页
第4页 / 共40页
jsp中的隐含对象_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《jsp中的隐含对象》由会员分享,可在线阅读,更多相关《jsp中的隐含对象(40页珍藏版)》请在金锄头文库上搜索。

1、第六章 JSP中的隐含对象,JSP中隐含对象的概念 属性(Attribute) JSP中的隐含对象 错误处理,JSP中隐含对象的概念,在本节中,您将了解以下内容: 什么是JSP的隐藏对象 JSP中有哪些隐藏对象,JSP隐藏对象的定义,JSP隐藏对象的由来,JSP隐藏对象的定义,6.1节,public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException JspFactory _jspxFactory = nul

2、l; PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; . . . _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType(“text/html;charset=GBK“); pageContext = _jspxFactory.g

3、etPageContext(this, request, response, “, true, 8192, true); application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); . . . ,下面是一个普通的jsp页面文件helloworld.jsp CH5 - helloworld.jsp 我们知道,该文件被第一次浏览时,jsp引擎将对其进行转译。

4、,转译,JSP隐藏对象的概念,JSP隐藏对象的定义,6.1节,概念 jsp页面在运行之前的转译过程中,jsp引擎为其_jspService方法定义了一些局部对象。由于jsp脚本都将转译成_jspService方法的代码,因此这些局部对象在jsp脚本中是可直接使用的。这些局部对象一个通常的叫法为隐藏对象。 通过分析_jspService方法的代码,可知常用的隐藏对象有: pageContext PageContext 类型 session HttpSession 类型 application ServletContext 类型 config ServletConfig 类型 out JspWri

5、ter 类型 page Object 类型 request HttpServletRequest类型 response HttpServletResponse 类型,常用的JSP隐藏对象,JSP隐藏对象的定义,6.1节,第六章 JSP中的隐含对象,JSP中隐含对象的概念 属性(Attribute) JSP中的隐含对象 错误处理,属性(Attribute),在本节中,您将了解以下内容: 哪些JSP隐藏对象可以保存属性 属性的作用范围(Scope),可以使用属性的隐藏对象,属性(Attribute),属性,6.2节,我们通常会将request、session、application 和pageCo

6、ntext 归为一类,原因在于:它们皆能借助属性来做到数据分享。 下表 列出了一般储存和取得属性的方法,这些方法pageContext、request、session和application皆可使用。,可以使用属性的隐藏对象,属性,6.2节,使用属性的一般注意事项 当我们使用getAttribute(String name)取得name 属性的值时,它返回一个java.lang.Object类型的对象,因此,还必须根据name 属性值的类型进行类型转换 (Casting)工作。 例如,如果要取得String 类型的Name 属性时: String userName = (String)page

7、Context.getAttribute(“userName”); 如果是Integer 类型的Year 属性时: Integer Year = (Integer)session.getAttribute(“Year“); 在使用属性存储数据前,应该首先根据对属性的功能要求,确定准备将属性存储在Request、Session 、Application或PageContext的哪个之中,以便将相应数据存入选定对象之中。 存入不同隐藏对象的属性在功能上有很大区别。 request.setAttribute(“Month“, new Integer(12) ); session.setAttribu

8、te(“Day“, new Integer(27) ); application.setAttribute(“Times“, new Integer(10);,属性的范围(Scope),属性,6.2节,概念 在使用属性前,应首先根据对属性的功能要求,确定准备将属性存储在Request、Session 、Application或PageContext的哪个之中。 这一点十分重要,这是因为这将决定属性的作用范围。换句话说,属性的宿主对象决定了属性的作用域、生存期等重要特性。 范围 如上所述,JSP的属性有四种宿主对象,也就有了四种作用范围 page request session applicat

9、ion。,属性的范围(Scope)-page,属性,6.2节,概念 属性的范围为page,指的是属性只作用在当前的JSP页面范围中。 操作方法 如果要将数据存入Page 范围,可用pageContext 对象的setAttribute( )方法; 若要取得page范围的数据,可用pageContext对象的getAttribute( )方法。,属性的范围(Scope)-page,属性,6.2节,例子: -PageScope1.jsp - html CH6 - PageScope1.jsp Page 范围 - pageContext ,属性的范围(Scope)-page,属性,6.2节,例子:

10、-PageScope2.jsp - CH6 - PageScope2.jsp Page 范围 - pageContext ,属性的范围(Scope)-request,属性,6.2节,概念:Request作用范围的属性 隐藏对象request的生存期就是一次用户请求的生存期,即从用户的一次请求到向用户返回相应之间的服务器处理期间。存储在request对象下的属性在request的生存期中有效。 为什么要研究request范围 在Servlet技术规范中,一次请求处理可能涉及到多个服务器资源或JSP页面。比较典型的如jsp页面的动作和动作,就是在同一个用户请求下在多个页面之间进行传递的。在使用动作

11、和动作时,对于每一个页面,它们处理的都是同一个请求,或者说,它们之间的请求是在这几个页面之间是共享的。当接收到用户发出新的请求时,这个请求随之失效,存放其中的属性也同时失效。,属性的范围(Scope)-request,属性,6.2节,例子: -RequestScope1.jsp - CH6 - RequestScope1.jsp Request 范围 - request ,属性的范围(Scope)-request,属性,6.2节,例子: -RequestScope2.jsp - CH6 - RequestScope2.jsp Request 范围 - request ,属性的范围(Scope)

12、-session,属性,6.2节,概念 session 属性的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就无效。 在Web应用开发中,Session属性是使用非常频繁的。正如在第四章讲到的,在Servlet中,维护会话的高级形式是利用HttpSession对象,在JSP中维护会话的主要途径就是利用session属性。 我们应该注意到,在_jspService()方法中,session对象的初始化是以下方式: session = pageContext.getSession(); 也就是说,在jsp脚本中,可以确保session对象是可用的。,属性的范围(Scope)

13、-session,属性,6.2节,JSP页面中使用session对象的一个典型片断 Session ID = ,属性的范围(Scope)-application,属性,6.2节,概念 application对象的作用范围在服务器一开始执行服务,到服务器关闭为止。application 的范围最大、停留的时间也最久,所以使用时要特别注意,不然可能会造成服务器负载越来越重的情况。 建立范围为application的属性 只要将数据存入application 对象,数据的Scope 就为application。如 application.setAttribute(“visitCount“,new I

14、nteger(visitCount);,第六章 JSP中的隐含对象,JSP中隐含对象的概念 属性(Attribute) JSP中的隐含对象 错误处理,JSP中的隐含对象,在本节中,您将了解以下隐藏对象的具体操作方法: page 对象 config 对象 request 对象 response 对象 out 对象 session 对象 application 对象 pageContext 对象,JSP中的隐藏对象,page对象,JSP中的隐藏对象,6.3节,page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,我们在JSP转义后生成的Servlet类源代码中,可以看到JSP

15、容器是这样初始化page对象的: Object page=this; 因此,它可以调用Servlet类所定义的方法。如: CH6 - PageInfo.jsp page 隐含对象 Page Info = ,config 对象,JSP中的隐藏对象,6.3节,config 对象里存放着一些Servlet初始化的数据,config 对象和page 对象一样都很少被用到。 config 对象实现了javax.servlet.ServletConfig 接口,它共有下列四种方法: public String getInitParameter(name) public java.util.Enumeration getInitParameterNames( ) public ServletContext getServletContext( ) public Sring getServletName( ) 上述前两种方法可以让config对象取得Servlet 初始参数值,如果指定的初始参数值不存在,就返回null。,config 对象,JSP中的隐藏对象,6.3节,-config.jsp- CH6 Config.jsp Servlet Name: JSP Author: Date: Info: ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号