Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法.

Similar presentations


Presentation on theme: "第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法."— Presentation transcript:

1 第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法

2 第 4 章 JSP 内置对象 4.1 JSP 内置对象概述 4.2 request 对象 4.3 response 对象 4.4 session 对象 4.5 application 对象 4.6 其他内部对象 4.7 JSP 程序的调试

3 4.1 JSP 内置对象概述 – 4.1.1 JSP 内置对象的来源 – 4.1.2 JSP 内置对象介绍

4 4.1.1 JSP 内置对象的来源 有些成员变量不用声明就可以在 JSP 页面的 脚本(如 Java 程序片和 Java 表达式)中使 用,这就是所谓的内置对象。 使用 JSP 动态网页开发实现 Java Web 应用 时, JSP 文件通过 JSP 引擎翻译为 Servlet 文 件。这个 Servlet 是一个 Java 代码文件,用 于定义一个继承 HttpJspBase 类的子类,并 创建各个 JSP 内置对象。因此,在设计 JSP 动态网页时可以直接使用这些对象。

5 4.1.2 JSP 内置对象介绍 JSP 的内置对象是由 JSP 容器自动生成的, 在 JSP 页中可以直接使用而无须进行声明。 在 JSP 动态网页设计过程中,灵活地应用这 些内置对象,可以实现许多实用的功能。 在不需要显示声明的情况下,每一个 JSP 页 面中可以使用的内置对象有 9 个:即 request 、 response 、 session 、 out 、 application 、 config 、 pageContext 、 page 以及 exception 。

6 4.2 request 对象 – 4.2.1 HTTP 请求包 – 4.2.2 request 对象的常用方法 – 4.2.3 request 对象应用实例

7 4.2.1 HTTP 请求包 一般说来,一个 HTTP 请求包括三个部分:一个请求 行、多个请求头和信息体。 1 .请求行 规定了请求的方法(如 get 、 post 、 head 、 delete 、 put 等),请求的资源和使用的 HTTP 协议版本号。 2 .请求头 请求头主要说明请求客户的主机( IP )、信息体和 附加信息。一个 HTTP 请求可以包括多个请求头。 3 .信息体 指请求的正文。如表单数据被封装为信息体。

8 4.2.2 request 对象的常用方法 request 对象包括很多方法,主要有以下几种。 ( 1 ) getProtocol() ( 2 ) getServletPath() ( 3 ) getContentLength() ( 4 ) getMethod() ( 5 ) getHeader(String s) ( 6 ) getHeaderNames() ( 7 ) getHeaders(String s) ( 8 ) getRemoteAddr()

9 ( 9 ) getRemoteHost() ( 10 ) getServerName() ( 11 ) getServePort() ( 12 ) getParameter(String name) ( 13 ) getParameterNames() ( 14 ) getParameterValues(String name) ( 15 ) getCookies() ( 16 ) getRequestURL() 4.2.2 request 对象的常用方法

10 4.2.3 request 对象应用实例 客户通常使用 HTML 表单向服务器的某个 JSP 页面提交信息,一般格式为: [ 接受数据的组件 (0 ~ n 个 )] [ 数据提交控件 ] 【例 4-3 】获取服务器端的有关信息 在本例的 request.jsp 文件中,利用 request 对象 的各种方法来获取服务器端的各种信息参数, 并将其显示出来。 本例源代码详见教材

11 4.3 response 对象 –4.3.1 HTTP 响应包 –4.3.2 response 对象的常用方法 –4.3.3 response 对象应用实例

12 4.3.1 HTTP 响应包 一个 HTTP 响应包由三个部分组成:一个状态行、多个响 应头、信息体。 1 .状态行 描述服务器处理 HTTP 请求的成功与否。比如,是否收到 请求包、请求被拒绝、请求超时、服务器发生错误等。 2 .响应头 HTTP 响应包发送的目标地址 (IP) 。 3 .信息体 发送到服务器端的正文。如,在客户端显示的信息。 服务器响应客户时,它发送到客户端的首行被称为状态行。

13 状态行由 3 位数的状态代码和描述状态代码的文字组成。下 面是对状态代码的分类描述: 1xx : 1 开头的3位数字,主要用于实验。 2xx : 2 开头的3位数字,表明客户端的请求已成功。 3xx : 3 开头的3位数字,表明处理客户的请求以前,应做 一些别的处理。 4xx : 4 开头的3位数字,表明浏览器请求是非法的或无效 的。 5xx : 5 开头的3位数字,表明服务器出现了问题。 一般不需要修改状态行,在出现问题时,服务器会自动响应, 发送相应的状态代码到客户端。也可以使用 setStatus(int n) 方法来增加状态行的内容。 4.3.1 HTTP 响应包

14

15

16 4.3.2 response 对象的常用方法 response 对象可以使用的常用方法如下: ( 1 ) addHeader(String name,String value) ( 2 ) setHeader(String name,String value) ( 3 ) addCookie(Cookie cookie) ( 4 ) containsHeader(String name) ( 5 ) sendError(int sc)

17 ( 6 ) SendRedirect(URL) ( 7 ) flushBuffer() ( 8 ) setContenType(String type) ( 9 ) setLocale(Locale:locale) ( 10 ) setStatus(int:statuscode) ( 11 ) isCommitted() ( 12 ) reset() 4.3.2 response 对象的常用方法

18 4.3.3 response 对象应用实例 【例 4-4 】控制网页的刷新频率,在页面 中,实时显示当前时间。 要实时显示当前时间,必须每秒钟刷新 一次页面,这就要求向客户输出的响应 包中,必须含有响应头 Refresh, 其值为 1 , 单位是秒。本例中利用 response 对象的 setHeader ()方法添加响应头和属性值。 本例源代码详见教材

19 4.4 session 对象 –4.4.1 会话及相关概念 –4.4.2 session 对象的常用方法 –4.4.3 session 对象应用实例

20 4.4.1 会话及相关概念 1 .会话 从一个客户打开浏览器连接到服务器的某 个服务目录,到客户关闭浏览器,这一过 程称为一个会话 ( 这其间,客户访问的是 同一 Web 目录中的网页 ) 。这时,在服务 器端,系统为该客户创建了一个 session 对象,在客户端,系统为该客户创建了 Cookie 对象。一个客户对同一服务目录中 不同网页的访问属于同一会话。

21 2 . session 对象与 Cookie 当 JSP 引擎为客户创建一个 session 对象后,这 个 session 对象被分配了一个 String 类型的 ID 号, JSP 引擎同时将此 ID 号发送到客户端,存放在 Cookie 中。这样,代表同一客户会话的 session 对象和 Cookie 对象建立了一一对应关系。即, 每一客户会话信息保存在 session/Cookie 对中。 当用户再次访问连接该服务器的其他页面时, 就不再分配给用户新的 session 对象,直到关闭 浏览器后,服务器端该用户的 session 对象才取 消,并且和用户的对应关系也取消 4.4.1 会话及相关概念

22 3 . session 对象与线程 当多个客户点击同一页面时, JSP 引擎为每个客 户启动一个线程,这就是说,一个客户对应一个 线程,每个线程对应一个 session 对象,每个线程 的 session 对象不同。 4 . session 对象的生命周期 从一个客户会话开始到会话结束这段时间称为 session 对象的生命周期。具体上说,指客户访问 某 web 目录下的页面到关闭浏览器,离开该 web 目录,这段时间成为 session 对象的生命周期。 4.4.1 会话及相关概念

23 4.4.2 session 对象的常用方法 session 对象可以使用的常用方法如下: ( 1 ) getAttribute(String name) ( 2 ) getAttributeNames() ( 3 ) getCreationTime() ( 4 ) getId() ( 5 ) getLastAccessedTime() ( 6 ) getMaxInactiveInterval() ( 7 ) setMaxInactiveInterval (int interval) ( 8 ) removeAttribute(String name) ( 9 ) setAttribute(String name,Java.lang.Object value) ( 10 ) invalidate() ( 11 ) isNew()

24 4.4.3 session 对象应用实例 【例】控制网页的刷新频率,在页面中,实 时显示当前时间。 要实时显示当前时间,必须每秒钟刷新一次 页面,这就要求向客户输出的响应包中,必 须含有响应头 Refresh, 其值为 1 ,单位是秒。 本例中利用 response 对象的 setHeader () 方法添加响应头和属性值。 本例源代码详见教材

25 4.5 application 对象 –4.5.1 application 对象的常用方法 –4.5.2 application 对象的应用实例 –4.4.3 session 对象应用实例

26 4.5.1 application 对象的常用方法 application 对象的主要方法有如下几种。 ( 1 ) getAttribute(String name) ( 2 ) getAttributeNames() ( 3 ) getInitParameter(String name) ( 4 ) getServerInfo() ( 5 ) setAttribute(String name, Object obj) ( 6 ) removeAttribute(String name) ( 7 ) getContext(String urlpath) ( 8 ) getMimeType(String filename) ( 9 ) getRealPath(String path)

27 4.5.2 application 对象的应用实例 【例 4-10 】读取系统信息。 本例主要是输出页面所在的实际路径、使 用的 JSP 引擎和 application 对象对应的字 符串。 本例源代码详见教材

28 4.6 其他内部对象 –4.6.1 out 对象 –4.6.2 page 对象 –4.6.3 pageContext 对象 –4.6.4 config 对象 –4.6.5 exception 对象

29 4.6.1 out 对象 out 对象是一个输出流,是 JSP 使用最频繁的对象,能把结 果输出到网页上。并且 out 对象还管理应用服务器上的输出 缓冲区。 out 对象的常用方法如下: ( 1 ) out.print() 或 out.println() ( 2 ) out.newLine() ( 3 ) out.clearBuffer() ( 4 ) out.clear() ( 5 ) out.flush() ( 6 ) out.getBufferSize() ( 7 ) out.getRemaining() ( 8 ) out.isAutoFlush()

30 4.6.2 page 对象 page 对象属于 java.lang.Object 类型,它是处理当 前请求的 JSP 实现类的实例。 page 对象指向当前 JSP 页面本身,更确切地说,它代表 JSP 被转译后 的 Servlet ,因此,它可以调用 Servlet 类所定义的 方法,在程序中可以用 this 来引用它。 【例】输出 JSP 页面对象的 ID 号和 hash 代码值。 本例调用 page 对象的 hashCode() 方法和 toString() 方法,分别获取 page 对象的 hash 代码值和 ID 号。 程序源代码详见教材。

31 4.6.3 pageContext 对象 pageContext 是 javax.servlet.jsp.PageContext 类的一个实 例。 pageContext 对象相当于 JSP 页面所 有功能的大集成者,它提供了对 JSP 页内 所有的对象及命名空间的访问。使用该对 象可以访问当前页所在 session 的属性值, 也可以访问当前页所在 application 的属性 值,并且允许向其他应用组件转发 Request 对象,或者从其他应用组件包含 Request 对象。

32 pageContext 对象的常用方法如下: ( 1 ) getAttribute() ( 2 ) forward(String relativeUrlPath) ( 3 ) findAttribute() ( 4 ) getexception() ( 5 ) setAttribute() ( 6 ) removeAttribute() 4.6.3 pageContext 对象

33 4.6.4 config 对象 config 对象是 JSP 页面通过 JSP Container 进行初始化时被传递的对象。 config 对象具有 Web 服务器环境设定值。 使用 config 对象的优点是在修改需要在 Web 服务器中处理的变量时,不需要逐 一修改 JSP 文件,只要修改相应属性文 件的内容就可以了。

34 config 对象的常用方法如下: ( 1 ) getInitParameter(String name) ( 2 ) getInitParameterNames() ( 3 ) getServletNames() ( 4 ) getServletContext() 4.6.4 config 对象

35 4.6.5 exception 对象 exception 对象用来处理 JSP 文件在执行时 所发生的错误和异常。 exception 对象可以 配合 page 指令一起使用,通过指定某一页 面为错误处理页面,把所有的错误都集中到 那个页面进行处理。这样可以使得整个系统 更加健壮,也使得程序的流程更加清晰,这 也是 JSP 比 ASP 和 PHP 先进的地方。

36 exception 对象的常用方法如下: ( 1 ) getMessage() ( 2 ) printStackTrace() ( 3 ) toString() 4.6.5 exception 对象

37 4.7 JSP 程序的调试 –4.7.1 三种错误类型 –4.7.2 JSP 语法错误的调试 –4.7.3 JSP 运行错误的调试

38 4.7.1 三种错误类型 当程序不能正常运行或运行结果不正确 时,就表明程序中有错。在 JSP 程序中, 常见的错误有以下 3 种: 1 )语法错误 2 )运行错误 3 )逻辑错误

39 4.7.2 JSP 语法错误的调试 本节以一个乘法九九表的的例子来分 析在编写 JSP 程序时经常会遇到的语 法错误。 例题详见教材

40 4.7.3 JSP 运行错误的调试 运行错误是当 JSP 引擎将 JS 文件编 译成的 Servlet 加载到内存执行时发 生的错误,如数组越界、除零及一 些数据操作都可能导致运行错误。

41 本 章 小 结本 章 小 结本 章 小 结本 章 小 结 本章介绍了 JSP 内置对象的概念、 生命周期、作用范围和对象方法的 实际应用。使用 JSP 内置对象,可 以方便操作页面属性和行为,访问 页面运行环境,实现页面内、页面 间、页面与环境之间的通信和相互 操作。另外,在本章的最后还介绍 了 JSP 程序常用的调试方式,通过 本章的学习,可以掌握 JSP 基本的 编程方法。


Download ppt "第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法."

Similar presentations


Ads by Google