J2EE课件第九讲JSP_第1页
J2EE课件第九讲JSP_第2页
J2EE课件第九讲JSP_第3页
J2EE课件第九讲JSP_第4页
J2EE课件第九讲JSP_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九讲 JSP开发,湖南文理学院计算机学院 王蓉,内容回顾,Servlet的概念 Servlet的生命周期 Servlet的工作方式 Servlet的编程接口 Servlet与客户端的交互 Servlet过滤器,本讲教学,教学内容 教学目标: 9.1 JSP简介 9.2 JSP指令 9.3 JSP声明 9.4 JSP隐含对象 教学重点: JSP的基本元素及其使用方法 教学难点: JSP的语法,9.1 JSP简介,JSP(Java Server Pages)是指: 在HTML中嵌入Java脚本语言 由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令 然后将生成的整个页面信息返回给客

2、户端,JSP页面,数据库 服务器,应用 服务器,客户端,Java脚本语言,1,2,3,4,9.1.1 JSP 执行过程,3,执行,2,翻译,编译,1,请求,响应,应用服务器,客户端,JSP文件,.java,.class,9.1.1 JSP 执行过程,Web容器处理JSP文件请求需要经过3个阶段: 翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java源码 编译阶段:Java源码会被编译成可执行的字节码 执行阶段:容器接受了客户端的请求后,执行编译成字节码的JSP文件;处理完请求后,容器把生成的页面反馈给客户端进行显示,9.1.1 JSP执行过程,JSP,9.1.1 JSP 执行过程,为

3、什么JSP页面在第一次请求时会比较慢,而之后对同样的JSP页面的请求会非常快?,9.1.1 JSP 执行过程,执行,第二次请求,响应,第一次请求之后,Web容器可以重用已经编译好的字节码文件,应用服务器,客户端,.class,注意:如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译,9.1.2 JSP的优点,将内容与表示分离,客户端,服务器,9.1.2 JSP 的优点,强调可重用组件,JavaBean,多个 JSP 页面使用相同的 JavaBean,JSP页面使用JavaBean产生动态内容,在JSP页面使用标签或脚本利用这些JavaBean,9.1.2 JSP 的优点,简

4、化页面开发Web 设计人员和 Web 程序员使用 Web 开发工具开发 JSP 页面,9.1.3 JSP语法概述,JSP原始代码中包含了JSP元素和Template(模板) data两类 Template data指的是JSP引擎不处理的部分,即标记以外的部分,例如代码中的HTML的内容等 ,这些数据会直接传送到客户端的浏览器 JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。,9.1.3 JSP语法概述,JSP元素分为三种不同的类型 指令(DIRECTIVE) 例如: 脚本语法(SCRIPTING) 动作语法(ACTION) 例如: ,,9.1.3

5、 JSP语法概述:页面的元素,静态内容,指 令,表达式,小脚本,HTML静态文本,以“ ” 结束。 比如:,声 明,标准动作,以“ ” 结束 比如:,注释, ,9.1.3 JSP语法概述:页面的元素, 输出当前日期 你好!今天是 ,指令,静态内容,小脚本,表达式,注释,9.1.4 JSP通用规则,JSP的标记规则 起始标记为或/“ 0) value=value+42; % 起始标记和结束标记一定要在同一个JSP页面中,且成对出现 JSP区分大小写。 JSP标签是大小写敏感的。 JSP元素中的相对路径规则 JSP使用的 URL要遵循 servlet的惯例,并且以一个 /开始的 URL叫做上下文相

6、关路径,如果URL不是以/开始的,就被解释为相对于当前的JSP。,9.1.4 JSP通用规则,JSP元素中的转义规则 在标记中出现的属性值总是用引号括起来的:使用单引号或双引号。如果引号是属性值本身的一部分的话,就可以使用特殊的字符串(就像在HTML中一样)。 在标记中可以使用字符 (反斜杠)来作为换码字符(例如,要使用 %,就要使用 %字符序列)。 在文档体文本中的空白符无关紧要。,9.1.4 JSP通用规则 :错误处理,致命的翻译错误将会导致接下来客户端请求的失败,如果 使用的是HTTP协议,则错误状态码是600,例如: Error: 500 Unable to compile class

7、 for JSP。 这是常遇到的一种错误,如果出现上面的提示信息,最好 是检查一下源文件是否存在错误。,9.1.4 JSP通用规则 :错误处理,在处理客户端请求的时候,也可能发生任何运行的错误, 或是在JSP页面类本身中,或在JSP页面实现类中调用的 其他代码中。 对于这样的错误是通过Java编程语言中的异常机制处理 的。这些异常在JSP实现类中就有可能被捕获和处理, 但是对于一些不能被捕获的异常将会被转移到该JSP页面 所指定的errorPage。,9.1.4 JSP通用规则 :中文的显示,JSP页面缺省情况: charset = ISO-8859-1,中文显示出现乱码。 要正确显示中文。

8、String str = request.getParameter(“name”); Str = new String(str.getBytes(ISO-8859-1),”GBK”); out.println(str);,9.2 JSP 指令,JSP 指令,page,include,taglib,JSP 指令的语法为: ,JSP 指令包括:,9.2.1 page 指令,page 指令属性,language,page 指令用于设置 JSP 页面的属性,import,buffer,errorPage,isErrorPage,language 定义要使用的脚本语言,import 将包和方法导入 Sc

9、riptlet,isErrorPage 表示当前页面能否作为错误页面,errorPage 定义处理异常的 JSP 页面,buffer 设置用来存储客户端请求的缓冲区的大小,9.2.1 page 指令,9.2.1 page 指令, 测试 page 指令 这是一个测试页面 ,page 指令属性,如果要写则必须写在脚本和表达式的前现,否则会出现错误,page指令中只有import属性允许在同一个页面中使用多次,9.2.2 include 指令,include 指令用于在运行时将 HTML文件或 JSP页面嵌入到另一个 JSP页面 include 指令语法 ,9.2.1 page 指令,使用inclu

10、de指令进行JSP编程, 你好! ,要嵌入 JSP 页面的文件,可以使用include指令把一个页面分成不同的部分,最后合并为一个完整的文件,使用JSP的include指令有助于实现JSP页面的模块化。,Include指令使用的是相对路径,所以需要把被包含文件放在合适的位置。,9.2.3 taglib 指令,taglib指令可以让JSP页面使用标签 taglib 指令的作用是在JSP页面中,将标签库描述符文件引入到该页面中,并设置前缀,而去利用标签的前缀去使用标签库表述文件中的标签 语法 一种是指定uri和prefix属性 一种是指定标签文件 tagdir指明一个相对于根目录的标签文件,9.2

11、.3 taglib 指令,taglib 指令的使用, ,JSP 页面在根目录中搜索 mytaglib 标签库描述符文件, 而 mytags 前缀将 mytaglib 中的标签嵌入 JSP 页面,9.3 JSP 脚本元素,JSP 脚本元素,表达式,Scriptlet,声明,JSP 脚本元素包括:,9.3.1 JSP 表达式,表达式的概念 表达式是对数据的表示,系统将其作为一个值进行计算和显示 表达式在JSP页面中的表现形式 ,9.3.1 JSP 表达式, JSP表达式 PI 的值: 100,99中最大的值 : 100,99中最小的值 : 3+2-5的值 : (3+2)=5的值 : (3+2)!=

12、5的值 : ,表达式,使用JSP 表达式进行JSP编程,注意: 表达式中的%和=之间没有空格 表达式的后面没有分号”;“ 当由多个表达组成时,解释顺序为从左到右,9.3.2 JSP scriptlet,JSP scriptlet概念 JSP scriptlet就是在JSP页面里嵌入一段Java代码 JSP scriptlet在JSP页面中的表现形式 ,9.3.2 JSP scriptlet, 以直角三角形的形式显示数字 ); % ,使用JSP scriptlet进行JSP编程,注意: 任何文本、HTML标记、JSP元素都必须在scriptlet之外,9.3.2 JSP scriptlet, ,

13、 ,使用表达式显示数据。 显然,表达式更有利于在HTML中显示数据,1,2,使用小脚本显示数据,9.3.3 JSP声明,JSP声明 JSP声明就是在JSP页面中声明Java方法或变量等 JSP声明在JSP页面中的表现形式 声明是JSP中的Java代码块,它用来在所产生的 servlet中定义类范围的变量和方法,产生servlet实例化时执行代码块。 声明代码块包含在中,并且它不会向输入流中写入任何的内容。,9.3.3 JSP声明,使用JSP声明进行JSP编程,注意: 声明的变量为全局变量,当有多个用户执行此网页时,将会共享这些变量。,9.3.4 JSP注释,在JSP文件的编写过程中,共有三种注

14、释方法: HTML的注释方法: 在客户端浏览器通过查看源代码可以看到。 隐藏注释: 在JSP脚本中使用注释: ,9.4 隐含对象,JSP 隐含对象是 Web 容器加载的一组类 它不像一般的Java对象那样用”new”去获取实例,而是可以直接在JSP页面使用的对象 隐含对象的名称是 JSP 的保留字 JSP 使用 Java 定义的隐含对象来访问网页的动态内容,9.4 隐含对象,隐含对象,输入输出对象,9.4 隐含对象,隐含对象,客户端,服务器,9.4.1 输入/输出对象,控制页面的输入和输出 访问与所有请求和响应有关的数据 输入和输出对象包括request、response 和 out,9.4.

15、1 输入/输出对象:request,表示客户端对网页的请求 实现 javax.servlet.HttpServletRequest接口 使用 HTTP 协议处理客户端的请求,request 对象,客户端,表示并存储客户端的请求,服务器,9.4.1 输入/输出对象:request,request对象常用方法 String getParameter(String name) 根据页面表单组件名称获取请求页面提交数据 String getParameterValues (String name) 获取页面请求中一个表单组件对应多个值时的用户的请求数据,9.4.1 输入/输出对象:request, ,

16、request对象,使用request对象进行JSP编程,9.4.1 输入/输出对象: response,处理 JSP 生成的响应 将响应发送给客户端 实现javax.servlet.HttpServletResponse 接口 使用 HTTP 协议将响应发送给客户端,9.4.1 输入/输出对象: response,Response 对象,客户端,存储信息,以在响应客户端 请求时发送此信息,服务器,9.4.1 输入/输出对象: response,response 对象常用方法 void setContentType (String name) 设置作为响应生成的内容的类型和字符编码 void

17、sendRedirect (String name) 发送一个响应给浏览器,指示其应请求另一个URL,9.4.1 输入/输出对象: response, response对象 ,使用response对象 重定向,使用response对象进行JSP编程,9.4.1 输入/输出对象: out 对象,表示输出流 javax.servlet.jsp.JspWriter 类的实例 使用 write()、print() 和 println() 方法,out 对象,客户端,创建输出流以显示信息,服务器,9.4.1 输入/输出对象: out 对象, ,使用out对象输出,使用out对象进行JSP编程,9.4.2

18、 作用域通信对象,隐含对象的作用域包括page、request、session 和 application 作用域通信对象包括 session、application 和 pageContext,9.4.2 作用域通信对象:session,Web 服务器为单个用户发送的多个请求创建会话 存储有关用户会话的所有信息 javax.servlet.http.HttpSession 接口的实例 session 对象最常用的方法有: void setAttribute(String name,Object value) 以键/值的方式,将一个对象的值存放到session 中 void getAttrib

19、ute(String name) 根据名称去获取session中存放对象的值,9.4.2 作用域通信对象:session,9.4.2 作用域通信对象:application,表示 JSP 页面所属的应用程序 应用程序的 JSP 页面组合起来形成一个应用程序 javax.servlet.ServletContext接口实例 application对象最常用的方法有: void setAttribute(String name,Object value) 以键/值的方式,将一个对象的值存放到application中 void getAttribute(String name) 根据名称去获取app

20、lication中存放对象的值,9.4.2 作用域通信对象:application,9.4.2 作用域通信对象: pageContext,使用户可以访问页面作用域中定义的所有隐含对象 它的作用范围是在同一页面 javax.servlet.jsp.PageContext 类的实例,9.4.2 作用域通信对象: pageContext,pageContext对象最常用的方法有: void setAttribute(String name,Object value) 以键/值的方式,将一个对象的值存放到pageContext中 void getAttribute(String name) 根据名称去

21、获取pageContext中存放对象的值,9.4.2 作用域通信对象, ,session 对象,pageContext 对象,application 对象, session、application 和 pageContext ,对象使用了 setAttribute() 方法,页面计数= 会话计数= 应用程序计数= 时间= ,对象使用了 getAttribute() 方法,9.4.3 Servlet 对象,JSP 引擎为每个 JSP 生成一个 Servlet Servlet对象提供了访问 Servlet 信息的方法和变量 Servlet 对象包括 page config,9.4.3 Servlet 对象:page,使用 page 对象可以访问 Serv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论