javaweb应用开发技术实用教程第2章jsp基础

上传人:痛*** 文档编号:186683121 上传时间:2023-02-08 格式:PPT 页数:54 大小:190KB
返回 下载 相关 举报
javaweb应用开发技术实用教程第2章jsp基础_第1页
第1页 / 共54页
javaweb应用开发技术实用教程第2章jsp基础_第2页
第2页 / 共54页
javaweb应用开发技术实用教程第2章jsp基础_第3页
第3页 / 共54页
点击查看更多>>
资源描述
2023-2-81Java Web开发技术开发技术第第2章章 JSP基础基础2023-2-82第第2章章 JSP基础基础2.1 JSP页面的基本组成 2.2 JSP页面中的注释2.3 声明2.4 代码段2.5 表达式2.6 JSP指令 2.7 JSP动作 2.8 本章小结2023-2-832.1 JSP页面的基本组成页面的基本组成l一个JSP页面是由传统的HTML页面标记加上JSP标记和嵌入的Java代码组成,由以下4种元素组成:HTML标记、JSP标记、JSP脚本和注释。lJSP标记包括指令标记和动作标记。指令标记是为JSP引擎而设计的,它向JSP引擎发送消息,告诉引擎如何处理其余JSP页面。动作标记是JSP页面特有的标记,它告诉Web容器去执行某个“动作”。2023-2-84JSP页面的基本组成(续)页面的基本组成(续)lJSP脚本是JSP页面中插入的Java代码,它又可以细分为声明、代码段和表达式。l声明用于定义特定于JSP页面(Servlet类)的变量、方法和类;l代码段是嵌入的Java语句;l表达式是Java脚本中输出语句的简化表示形式。l课本例exa2_1.jsp、exa2_2.jsp 2023-2-85JSP页面的执行过程页面的执行过程当服务器上的一个JSP页面第一次被请求时,Web服务器上的JSP引擎首先将JSP页面编译成Servlet,然后执行该Servlet。该Servlet主要完成以下2项任务:(1)把JSP页面中的HTML标记交给客户端的浏览器去解释执行。(2)把JSP页面中的JSP指令标记、动作标记、JSP声明、代码段和表达式交给服务器去执行,然后将结果送给浏览器。2023-2-86JSP页面的通用书写规则页面的通用书写规则 lJSP页面中HTML标记不区分大小写,JSP标记和页面中嵌入的Java代码区分大小写。l在JSP页面中,虽然指令和脚本元素所拥有的语法不是基于XML的,但可以获得一种可以替代的基于XML的语法。l在标记中出现的属性值总是用引号括起来的:使用单引号或双引号。2023-2-87JSP页面的通用书写规则页面的通用书写规则(续)(续)lJSP使用的URL地址要遵循 Servlet的惯例 l在JSP文档体中的文本中的空白符无关紧要,空白包括空格和空行。l在标记中可以使用字符”(反斜杠)来作为换码字符 2023-2-882.2 JSP页面中的注释页面中的注释 2.2.1 HTML注释 2.2.2 隐藏注释 2.2.3 脚本注释 2023-2-892.2.1 HTML注释注释lHTML注释是使用标签“”创建的l语法形式:l课本例exa2_3.jsp、exa2_4.jsp 2023-2-8102.2.2 隐藏注释隐藏注释l隐藏注释也称为JSP注释,只能在原始JSP文件中看到。l语法形式:l课本例exa2_5.jsp 2023-2-8112.2.3 脚本注释脚本注释 l在JSP页面的java脚本中使用的注释。其语法形式为:/单行注释 /*注释 */l脚本注释不仅能在原始JSP文件中看到,而且能在JSP编译成的Servlet中看到。l课本例exa2_6.jsp 2023-2-8122.3 声明声明2.3.1 变量声明2.3.2 方法声明2.3.3 声明类2023-2-813声明概述声明概述lJSP声明定义网页范围的变量、函数或类,让页面的其余部分能够使用。l声明的变量和方法是该页面所对应的Servlet类的成员变量和成员方法,声明的类是Servlet类的内部类。l声明块包含在中。l包括变量声明、方法声明和声明类三种。2023-2-8142.3.1 变量声明变量声明l用于定义特定于 JSP 页面的变量,声明的变量成了 JSP 页面转换到的 Servlet 类的成员变量,可以被该JSP页面中其他任何部分使用。l其语法形式为:l声明的变量类型可以是Java语言中允许的任何数据类型。2023-2-8152.3.2 方法声明方法声明l声明的方法在JSP页面有效,它编译成Servlet 类的成员方法。可以由页面上所有脚本元素访问。l其语法形式为:l方法声明方式跟Java中方法定义的形式一样,要给出方法返回类型、方法名、方法形参和方法体。l课本例exa2_7.jsp、exa2_8.jsp、exa2_9.jsp 2023-2-8162.3.3 声明类声明类l声明类是JSP页面对应的Servlet类的内部类,页面上所有脚本元素都可以创建该类的对象。l其语法形式为:l课本例exa2_10.jsp 2023-2-8172.4 代码段代码段l代码段是包含在之间的Java程序片段,包含一个或多个有效而完整的语句。当Web服务器接受客户端请求时,这段Java程序代码会被执行并向客户产生输出。l其语法形式为:l课本例exa2_11.jsp、exa2_12.jsp 2023-2-818代码段的注意事项代码段的注意事项l一个JSP页面可以有多个代码段,它们被JSP引擎按顺序执行。l在代码段中也可以声明变量,但这些变量是_jspService()中的局部变量,它们在JSP页面内所有代码段部分和表达式部分有效。2023-2-819代码段的注意事项(续)代码段的注意事项(续)l当JSP页面包含多个Java代码段时,这些代码段之间可以插入一些标记元素。l当客户请求一个JSP页面时,JSP引擎为每个客户产生一个线程,每个线程分别执行各自的_jspService()方法,因此一个客户对局部变量的操作不会影响其它客户。2023-2-8202.5 表达式表达式lJSP页面中可以在之间插入表达式,用于输出表达式计算的结果。在请求处理阶段JSP引擎将计算表达式的值,结果最终转换成一个相应的字符串。l表达式的语法形式为:l课本例exa2_13.jsp2023-2-821表达式的组成表达式的组成表达式可以由以下组成部分构成:l数字和字符串的字母值,比如2和“hello”l数学运算符,如+、-、*和l基本数据类型的变量l声明类的对象实例l在JSP中声明方法的调用l声明类所创建的对象的方法调用2023-2-822表达式的注意事项表达式的注意事项(1)“%=”是一个完整的符号,“%”和“=”不能插入空格。(2)表达式可以包含任何Java表达式,只要表达式可以求值。(3)表达式中不能插入语句,也不能以分号结束。2023-2-823表达式的注意事项(续)表达式的注意事项(续)(4)表达式是Java代码段的一种简单书写方式,其功能和代码段等效。相当于 假如 i 值为 5,则:打印:number5 图 2-15 表达式与 Java 代码段的功能等价示意图 2023-2-8242.6 JSP指令指令2.6.1 page指令2.6.2 include指令2.6.3 taglib指令2023-2-825JSP指令概述指令概述lJSP指令是针对JSP容器的,它将有关页面的特殊处理信息传送到JSP容器,告诉容器如何处理JSP网页,它并不会直接产生任何看得见的输出。l指令的语法形式为:l指令主要包括:page 指令、include 指令和taglib指令。2023-2-8262.6.1 page指令指令lpage指令用来定义和操作许多重要的依赖于页面的属性,这些属性影响整个JSP文件。lpage指令可以在JSP页面的任何地方、以任何顺序出现,而且一个页面可以包含任意数量的page指令。为了程序的可读性以及好的编程习惯,最好还是把它放在JSP页面的顶部。2023-2-827page指令的语法指令的语法lpage指令的语法为:l课本例exa2_14.jsp 2023-2-828属性属性描述描述缺省值缺省值language定义要使用的脚本语言,将来 JSP包容器支持多种语言时可使用它Javaimport定义以逗号分隔的类或包的列表,就像在通常的 Java代码中所使用的import语句那样缺省情况下忽略buffer定义输出流的缓冲区大小。如果值为none,则没有缓冲与实现有关;至少为 8KBautoFlush定义是否自动清除输出流缓冲区。如果为true,当缓冲区满时,自动把缓冲区内容输出给客户;如果为false,当缓冲区满时,会有一个运行时异常trueisThreadSafe定义页面是否支持多个用户的并发访问。如果为true,则JSP引擎会同时处理多个客户请求;如果为false,则JSP引擎会对客户请求进行排队,某个时刻只处理一个请求truecontentType定义JSP页面的字符编码方式和MIME类型。它的形式可以为MIMETYPE或MIMETYPE;charset=CHARSETMIMETYPE的缺省值为text/html;CHARSET的缺省值为ISO-8859-1info页面中可取到的字符串无缺省extends定义页面转换成的Servlet类继承的父类无缺省session定义本页是否使用session对象trueerrorPage定义页面异常时转向的页面的URL地址无isErrorPage定义页面是否为其它页面的异常处理页面。值为true的页面会自动获取Exception对象falsepageEncoding定义JSP页面的字符编码方式ISO-8859-1isElIgnored定义页面是否忽略EL表达式的计算与服务器种类有关2023-2-829page指令的注意事项指令的注意事项(1)import属性:如果不写该属性,JSP页面自动引入以下4个包:java.servlet.*;java.lang.*;java.servlet.*;;java.servlet.jsp.*。(2)contentType属性:MIMETYPE的缺省值为”text/html”;CHARSET的缺省值为”ISO-8859-1”。经常如下写法,以支持页面中的中文显示:2023-2-8302.6.2 include指令指令l如果需要在一个JSP页面中包括另一个文件,可以使用include指令。l指令的语法形式为:l该指令的作用是在JSP页面中该指令出现的位置静态插入一个文件。include指令能让页面内容分成几个组成部分分别管理。l课本例exa2_15.jsp、exa2_16.jsp 2023-2-831include指令的注意事项指令的注意事项(1)出现在一个JSP页面中的include指令的数量不受限制。(2)被包含文件的URL路径一定是和发出指令的JSP页面相对的路径。(3)该指令采取的是静态插入方式,所谓静态插入,是指当前的JSP页面和被嵌入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新页面转换成Servlet。2023-2-832include指令的注意事项(续)指令的注意事项(续)(4)所包含的文件可以是HTML网页、文本文件或者是JSP网页,并且这些文件应该和当前JSP页面在同一个Web应用中。(5)必须保证合并后的JSP页面符合JSP语法规则。2023-2-8332.6.3 taglib指令指令l除了标准的JSP标记以外,JSP标准还允许普通用户定义自己的标记。通过自定义标记的调用来完成用户的自定义动作。所有JSP自定义标记按组存放在标记库中。l要使用一个标记库中的标记,就要将标记库导入到JSP页面中,这需要使用taglib指令。2023-2-834taglib指令的语法指令的语法l taglib指令的语法形式为:其中uri是用户自定义标记所在的标记库描述文件的url地址,prefix是标记库描述文件的前缀。l课本例hello.jsp2023-2-835使用用户自定义标记的条件使用用户自定义标记的条件(1)标记处理器:描述了使用自定义标记时所发生的动作,它是实现了javax.servlet.jsp.tagext包中Tag接口或BodyTag接口的类。(2)标记库描述文件(TLD):是一个XML文档,它包含着标记库及库内每一个自定义标记的信息。2023-2-836使用用户自定义标记的条件(续)使用用户自定义标记的条件(续)(3)web.xml文件中标签库的描述:根据J2EE规范,每一个Web应用都有一个web.xml文件。JSP应用程序可以使用这个文件来定位标记库描述文件。(4)在JSP页面中使用用户自定义标记。2023-2-8372.7 JSP动作动作2.7.1 动作标记2.7.2 动作标记2.7.3 动作标记 2.7.4 动作标记 2.7.5 动作标记 2023-2-838JSP动作标记概述动作标记概述lJSP动作标记是JSP页面中使用的一种特殊的标记,它利用XML语法格式的标记来控制JSP引擎完成某种功能。lJSP动作标记可以完成很多功能,如实例化对象、与服务器端资源进行通信、提高组件的可重用性和可维护性、在JSP页面中包括一个外部的资源、把用户重定向到另外的页面等。2023-2-839常用的常用的JSP动作标记动作标记常用的JSP动作标记包括:l:在页面被请求的时候引入一个文件l:把请求转到一个新的页l:根据浏览器类型为Java插件生成OBJECT或EMBED标记l:寻找或者实例化一个JavaBeanl:设置JavaBean的属性l:输出某个JavaBean的属性 2023-2-8402.7.1 动作标记动作标记 l用来在JSP页面中动态包含一个文件,包含页面与被包含文件是彼此独立的,互不影响。l动作可包含一个动态文件也可包含一个静态文件。如果包含的是一个静态文件就直接输出给客户端,由客户端的浏览器负责显示;如果包含的是一个动态文件则由服务器的JSP引擎负责执行,把运行结果返回给客户端显示出来。2023-2-841动作语法一动作语法一l动作语法一:jsp:include page=relativeURL|flush=true|false/l其中,page属性表示要包含的文件的相对地址,它可以是一个字符串,也可以是一个JSP表达式。flush属性默认为false,若为true则表示当缓冲区满时,缓冲区将被清空。2023-2-842动作语法二动作语法二l动作语法二:jsp:include page=relativeURL|flush=true|false jsp:param name=paramName value=paramValue|/l课本例exa2_17.jsp 2023-2-843include指令和指令和include 动作区别动作区别(1)嵌入的内容。include指令嵌入的是静态的文本或页面,而include动作包含的可以是静态或动态内容。(2)嵌入被包含页面的时间。include动作在处理请求时才将被包含页面嵌入进来,而include指令是在JSP文件被转换成Servlet的时候引入文件。(3)共享局部变量。用include动作时,在页面中声明的变量不可用于另一文件;而在用include指令时,当前页面和被包含页面可以共享变量。2023-2-844include指令和指令和include 动作区别(续)动作区别(续)(4)修改的生效时间。用include指令时,修改的生效需刷新页面或去掉已经编译成的Servlet;而用include动作时,被包含页面的修改会随时生效。(5)变量名冲突。用include指令时注意新生成的JSP页面要符合JSP语法要求,应该避免变量名的冲突。而用include动作不存在变量名冲突问题。2023-2-8452.7.2 动作标记动作标记 l标记提供了“名称值”信息,用于将附加在request中的参数发送至转发的页面,可与 、和标记一起使用。2023-2-846动作的语法动作的语法 l动作标记的语法形式为:jsp:param name=parameterName value=parameterValue|/name属性指定参数的名称,value属性指定参数的值。l课本例exa2_18.jsp2023-2-8472.7.3 动作标记动作标记 l动作将当前页面的执行过程终止忽略它的输出并且把请求转向一个新的页。l语法格式一:jsp:forward page=relativeURL|/2023-2-848动作标记语法二动作标记语法二l语法格式二:jsp:forward page=relativeURL|jsp:param name=paraName value=paraValue|/l课本例exa2_19.jsp、exa2_20.jsp 2023-2-849forword动作标记注意事项动作标记注意事项l使用标记时,JSP页面必须使用缓冲机制,不能将page指令中的buffer属性设为none。否则它将清空缓存里的内容,浏览器里将得不到任何输出。l一旦JSP页面中加入,则它之后的程序将无法执行,标记将停止当前页面的处理而转向目标页面。2023-2-8502.7.4 动作标记动作标记 l动作将导致在客户端浏览器中运行一个指定的applet或者JavaBean。并且如果还需要下载一个Java插件,JSP容器一般会提供一个缺省的下载URL,但是你也可以通过指定属性ieplugurl提供一个下载插件的URL。2023-2-851 动作标记语法动作标记语法 l动作的语法格式为:提示信息:提示用户浏览器是否下载插件 l课本例exa2_21.jsp2023-2-8522.7.5 动作标记动作标记 l动作用来装载一个在JSP页面中使用的JavaBean。l这个动作标记功能非常有用,因为它使得我们可以发挥Java组件重用的优势。它使得JSP页面中的HTML代码与Java代码分开,用HTML完成页面的静态部分,用动作标记完成页面的动态部分。2023-2-8532.8 本章小结本章小结lJSP开发环境提供了使用服务器端Java编写动态HTML页面的一种方式。其语法允许大部分HTML被直接编入,并由Java代码段作为控制代码。它同时支持静态和动态地包含其他资源。JavaBean被完全整合到JSP页面中,用户自定义标记允许功能被封装,可用于非专业编程人员方便地编写JSP页面。2023-2-854本章结束,谢谢大家!本章结束,谢谢大家!休息一会儿。休息一会儿。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!