《JSP标记》PPT课件.ppt

上传人:za****8 文档编号:16087104 上传时间:2020-09-18 格式:PPT 页数:77 大小:1.66MB
返回 下载 相关 举报
《JSP标记》PPT课件.ppt_第1页
第1页 / 共77页
《JSP标记》PPT课件.ppt_第2页
第2页 / 共77页
《JSP标记》PPT课件.ppt_第3页
第3页 / 共77页
点击查看更多>>
资源描述
2020/9/18,1,第三章 JSP标记,2,2020/9/18,内 容 简 介,JSP指令标记 JSP动作标记,3,2020/9/18,学习目的和要求,掌握JSP指令标记 掌握JSP动作标记,4,2020/9/18,3.1 JSP指令标记,Directive(编译指令)相当于在编译期间的命令 格式: JSP指令: page: 用于设置JSP页面的属性 include:用来将其他文件嵌入JSP页面 Taglib:允许用户创建自定义标签,5,2020/9/18,3.1 JSP指令标记,3.1.1 page指令元素 page指令用于设置整个JSP页面的属性。 page指令中的属性大多数只需要在JSP页面中定义一次 。 page指令中允许重复使用多次的属性有pageEncoding和import属性等。 习惯上,把page指令写在JSP页面的头部。,6,2020/9/18,3.1 JSP指令元素,page指令的基本语法格式如下,7,2020/9/18,3.1 JSP指令元素,page指令的基本语法格式如下 属性值用单引号或双引号括起来,如果一个属性值指定几个值的话,这些值用逗号分隔 可以用一个page指令制定多个属性的值 也可以使用多个page指令分别为每个属性指定值 ,8,2020/9/18,3.1 JSP指令元素,1、language属性 这个属性定义JSP页面脚本代码所采用的编程 语言,默认值为java。 ,9,2020/9/18,3.1 JSP指令元素,2、extends属性 JSP页面最终会被JSP容器编译成一个Servlet程序,extends属性用来指明转换后Servlet程序的父类,但必须是javax.servlet.jsp.HttpJspPage的子类。 一般情况下不需要设置,默认父类是HttpJspBase,10,2020/9/18,3.1 JSP指令元素,3、import属性 import属性用于导入当前JSP页面中要用到的其它Java类。 导入后,可在JSP页面的程序片、变量及方法声明、表达式部分使用核心包中的类。 可以为import属性指定多个值,即导入多个Java类, ,11,2020/9/18,3.1 JSP指令元素,3、import属性 JSP页面默认的import属性已经有如下的值:,java.lang.*, javax.servlet.*, javax.servlet.jsp.*, javax.servlet.http.*,12,2020/9/18,3.1 JSP指令元素,4、pageEncoding属性 pageEncoding定义当前页面的字符编码标准,默认的字符集为ISO-8859-1,如果页面中有简体中文,则字符集应该定义为GB2312或GBK。 ,13,2020/9/18,3.1 JSP指令元素,5、contentType属性 MIME (Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务) 给HTTP协议附加了MIME-type信息,用于指明HTTP中所传递信息的数据类型,浏览器接收完数据后,按照数据的类型调用合适的软件来处理这些数据 指定服务器发送给客户端时的内容编码,14,2020/9/18,3.1 JSP指令元素,例如,如果接收到的信息是一个Excel文件,则IE5浏览器会自动启动Excel软件来处理这些信息,如果Excel软件启动失败或客户端找不到Excel软件时,IE浏览器提示用户将接收到的信息另存为文件。,15,2020/9/18,3.1 JSP指令元素,常 见 的 MIME -type 类 型,16,2020/9/18,3.1 JSP指令元素,contentType属性中charset设置同pageEncoding中字符类型设置的区别:,见ch3/1的3个例子,客户端浏览器,JSP服务器,JSP页面(.jsp文件),Servlet代码(.java文件),编译Servlet(.class文件),转译-pageEncoding字符设置,编译- UTF-8的encoding的java源码,请求,执行 应用contentType属性中charset设置,17,2020/9/18,3.1 JSP指令元素,6、session属性 session属性用来指示JSP页面的Servlet实现类中,是否要生成一个session隐含对象。关于session隐含对象,在后续的章节中有详细的介绍。,18,2020/9/18,3.1 JSP指令元素,7、buffer属性 out对象是JSP页面的隐含对象之一,用于向客户端返回信息。 buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。 buffer属性取值为none时,表示不设缓冲区,则out对象的输出信息会直接传递PrintWriter。,19,2020/9/18,3.1 JSP指令元素,输出缓冲区能够改善系统的性能。 当buffer取值为nkb时,表示缓冲区的大小为nKB,此时为out对象定义了输出流缓冲区,out.write()输出的信息会暂时存储在缓冲区中,缓冲区被刷新后,其中的信息会通过PrintWriter对象传给客户端。默认值为8KB。 一个应用样例如:,20,2020/9/18,3.1 JSP指令元素,8、autoFlush属性 指定out的缓冲区被填满时,缓冲区是否自动刷新。 autoFlush取值为true时,表示缓冲区满时自动执行刷新操作,取值为false表示缓冲区满时,抛出一个IOException(缓存溢出)异常。默认值为true。 这个属性一般和buffer属性联合使用,如果buffer=none时,则autoFlush=true无效。一个应用样例如:,21,2020/9/18,3.1 JSP指令元素,9、isThreadSafe属性 isThreadSafe=“true”时,表示JSP编译后所得的Servlet程序以多线程方式工作,JSP页面能同时响应多个用户的请求采用Servlet。因而能提高程序的响应速度,减少系统开销。 当isThreadSafe=“false”时,表示Servlet程序以单线程方式工作,JSP页面同一时刻只能处理响应一个用户的请求,其他用户需排队等待。 默认值为true,22,2020/9/18,3.1 JSP指令元素,10、info属性 Infro的属性值是一个字符串,其目的是为JSP页面准备一个常用且可能需要修改的字符串。 如定义JSP页面的信息,如版权、开发日期等,可通过javax.sevlet.Servlet.getServletInfo()方法读取这些信息。一个样例如下示:, ,23,2020/9/18,3.1 JSP指令元素,11、isELIgnored 属性 isELIgnored=“true”时,表示忽略JSP页面中的EL表达式,isELIgnored=“false”时表示JSP页面中的EL表达式要被解释和执行。默认值为true。 EL表达式是JSP2.0中新增的技术规范,大家可上网查询相关知识。,24,2020/9/18,3.1 JSP指令元素,12、errorPage属性 JSP页面如果发生了运行时异常,出错原因、出错的类名、出错的行号、出错的方法名等信息会被封装在异常对象中。 errorPage属性用于指明:JSP页面发生运行时异常,则把异常对象传递给指定的出错页处理,errorPage中的值为出错页的URL,可用相对路径或绝对路径表达。 此项默认值为空,则运行时异常信息直接显示在浏览器上。,25,2020/9/18,3.1 JSP指令元素,应用样例如下示: 当前JSP页面出现运行时异常,服务器会把异常对象传递给nullString.jsp页面处理。 errorPage属性在JSP页面中只需定义一次,如果定义多次,编译时可能会引发“重复标记”的语法错误。, 或: ,26,2020/9/18,3.1 JSP指令元素,13、isErrorPage属性 isErrorPage=true时,定义本JSP页面为异常对象处理页,特点是当前JSP页面的Servlet实现类中定义有exception隐含对象,接收异常页传递过来的异常信息。exception对象是Throwable类型的,在后续章节中有介绍。 isErrorPage=false时,Servlet程序中不定义exception隐含对象。,27,2020/9/18,3.1 JSP指令元素,【例】定义一个exam208.jsp页面,运行时会发生异常,并能自动切换至exam209.jsp页面显示出错的类名、方法名、出错原因等信息。操作步骤如下:,28,2020/9/18,3.1 JSP指令元素,(1)启动DW8,新建JSP文件exam208.jsp。在exam208.jsp的代码视图中,将第1行中的指令属性修改如下: 定义若exam208.jsp发生运行时异常,则转至exam209.jsp页面显示异常信息。,29,2020/9/18,3.1 JSP指令元素,在exam208.jsp的间输入如下的代码,使exam208.jsp运行时发生对象引用为空的异常。,第1行: 第2行: 第6行: ,30,2020/9/18,3.1 JSP指令元素,(2)在DW8中新建JSP文件exam209.jsp。在exam209.jsp的代码视图中,修改第1行指令,定义当前页为异常对象处理页:,31,2020/9/18,3.1 JSP指令元素,在exam209.jsp中的标记内,添加如下示的代码:,第1行: 第2行: ); 第5行: out.print(出错的文件:+a0.getFileName()+); 第6行: out.print(出错的方法名:+a0.getMethodName()+); 第7行: out.print(出错的行号:+a0.getLineNumber()+); 第8行: % 第9行: ,32,2020/9/18,3.1 JSP指令元素,(3)预览。启动Tomcat,预览exam208.jsp页面,结果如图2-3示。,33,2020/9/18,3.1 JSP指令元素,在实验过程中,如果exam208.jsp和exam209.jsp中的代码均没有语法错误,但预览exam208.jsp后,异常信息无法显示,只是在IE5浏览器中出现“该页无法显示”的提示,这是服务器传递给IE5的错误信息不足1KB以及IE5的高级选项中设置了“显示友好HTTP错误信息”参数引起,最简单的解决方法是在exam209.jsp页面的标记内,加入 注释标记,在注释标记中多粘贴一些文字,使服务器的返回信息在1KB以上。,34,2020/9/18,3.1 JSP指令元素,例如在exam209.jsp的标记中,加入以下的注释:,35,2020/9/18,3.1 JSP指令元素,3.1.2 include指令元素 1、include指令的基本语法 如果要在JSP页面的某处整体插入一个文件,可使用include指令 JSP引擎(容器)会在JSP程序的转换时期先把file属性设定的文件包含进来,替换include指令,然后再开始执行转换及编译工作(原封不动的把文件copy到该位置,然后进行转换和编译,只生成一个java和class),36,2020/9/18,3.1 JSP指令元素,file属性指出被包含资源的URL 相对路径: 以文件名称或文件夹名开头,在当前页面的目录上查找文件 /当前目录下的页面 绝对路径:以“/”开头,在当前应用的根目录下查找文件 /站点根目录下的页面,37,2020/9/18,3.1 JSP指令元素,运行,查看源文件,38,2020/9/18,3.1 JSP指令元素,2、include指令的使用注意事项 include指令适合于包含静态内容,被include指令包含的内容在编译时被静态地嵌入Servlet程序中 。 使用include指令时,必须保证新合并而成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。 Include指令不支持任何表达式、也不允许传递任何参数。 include指令影响JSP页面的可读性。,39,2020/9/18,3.1 JSP指令元素,3、include指令的应用 include指令可以实现代码的复用 如:每个JSP页面上都可能需要一个导航条,以便用户在各个JSP页面之间方便地切换 导航条建立公共文件被各个文件包含,40,2020/9/18,include指令的应用举例,运行,41,2020/9/18,3.2 JSP标准动作,Action(动作指令)相当于在运行期间的命令 格式: JSP动作: 标准动作: 标记名是由JSP规范定义,用户不能随意更改。 jsp:include :动态包含文件 jsp:forward:将用户重定向到另一个页面 jsp:plugin:动态生成XML元素等 扩展动作,42,2020/9/18,3.2 JSP标准动作,43,2020/9/18,3.2 JSP标准动作,3.2.2 动作 动态包含:动态加载一个文件。,44,2020/9/18,3.2 JSP标准动作,3.2.2 动作 动态包含:动态加载一个文件,当文件是 普通文本文件:将文件内容发送给用户端,由用户端负责执行 JSP文件(动态内容),JSP引擎执行这个文件,将执行的结果发送给用户端,并由用户端负责显示这些结果,45,2020/9/18,3.2 JSP标准动作,动态包含的基本语法格式如下: 格式一: 在标记中,page=“urlSpec”属性定义了被包含资源的URL,可用相对路径或绝对路径表达。 属性flush=true时,表示在包含目标资源前,先刷新当前页面输出缓冲区中的内容。 flush=false时,包含文件前,不刷新当前页面的输出缓冲区。默认值为false。,46,2020/9/18,3.2 JSP标准动作,如果要给被包含的页面传递参数,可以使用标记。 格式二: 被包含页通过request.getParameter(“name”)获取相应参数。, * ,见例ch3/3/example3_3.jsp,47,2020/9/18,3.2 JSP标准动作,3.2.3 动作 主要是为、和等动作元素传递参数,如果在其它场合中使用它,JSP容器会报告翻译错误。 的基本语法为:,见例4/3_4,48,2020/9/18,3.2 JSP标准动作,3.2.4 动作 动作:停止当前页面的继续执行,转向目标页面 浏览器地址保留当前JSP页面地址,隐藏目标页面地址 目标页面可以是静态资源(如*.htm),也可以是一个JSP页面(*.jsp),还可以是一个Servlet、CGI程序等。 会导致当前JSP页面运行中断,断点后的代码将无法被继续执行。,49,2020/9/18,3.2 JSP标准动作,的基本语法格式为: 或, * ,见例5/3_5,50,2020/9/18,3.2 JSP标准动作,3.2.5 动作 在页面中使用普通的HTML标记可以让用户下载运行一个Java applet小程序 不是所有用户的浏览器都支持Java applet小程序 如果你的Java applet小程序使用了JDK1.2以后的类,那么,有些浏览器并不支持这个Java小应用程序,而使用plugin动作标记可以保证用户能执行你的小应用程序 指示JSP页面加载Java plugin插件。该插件由用户负责下载,并使用该插件运行Java applet小程序,51,2020/9/18,3.2 JSP标准动作,3.2.5 动作 主要用来在客户端浏览器中加载运行一个Applet或JavaBean 被加载的Applet或JavaBean可以是单个类文件*.class 也可以是一个*.jar包。 在JSP页面中使用动作,服务器将把被加载的文件传送到客户端,由客户端的JVM运行Applet或JavaBean。,52,2020/9/18,3.2 JSP标准动作,的基本语法格式为:,jsp:plugin type=bean|applet code=objectCode codebase=objectCodebase align=alignment archive=archiveList height=height hspace=hspace jreversion=jreversion name=componentName ,53,2020/9/18,3.2 JSP标准动作, vspace=vspace title=”title” width=width nspluginurl=url iepluginurl=url mayscript=true|false + arbitrary_text ,54,2020/9/18,例:,55,2020/9/18,56,2020/9/18,57,2020/9/18,58,2020/9/18,3.2 JSP标准动作,3.2.6 和 是的一部分,只能在中使用,在其它场合下使用,JSP容器在翻译时会报错。在内部书写。 也是的一部分,只能在中使用,在其它场合下使用,JSP容器在翻译时会报错。用于定义启动Applet/JavaBean失败时,显示的提示信息。,59,2020/9/18,3.2 JSP标准动作,3.2.7 将动作用来创建并使用一个Javabean Sun公司倡导,用HTML完成JSP页面的静态部分,用Javabean完成动态部分,实现真正意义上的静态、动态之分。 后续章节重点讲解。,60,2020/9/18,3.3 实践,JSP页面的基本结构演示 使用include指令实现页面导航功能 使用include动作实现动态调用 使用forward动作实现页面跳转,61,2020/9/18,案例1:JSP页面基本结构演示,见例example2_1.jsp,62,2020/9/18,案例2:使用include指令实现页面导航功能,文件名称:public.htm My Home Page,63,2020/9/18,案例2:使用include指令实现页面导航功能,文件名称:include.jsp New Document Test Test Test Test ,64,2020/9/18,案例3,文件名称:include1.jsp 下面为加载另一页面的动态显示 / ,65,2020/9/18,案例3,文件名称:include2.jsp 当前时间: ,66,2020/9/18, 加载的文件: ,案例3-2,67,2020/9/18, 从1到100的连续和为: ,案例3-2,68,2020/9/18,案例4, jsp:forward动作指令 使用jsp:forward动作指令实现服务器端跳转。 ,69,2020/9/18,案例4,Forwarded.jsp 跳转到的页面 跳转到的页面 /html,70,2020/9/18, 提交表单,如果为指定字符串则转到一个页面,否则转到另一页面提示:“你无权访问”。 ,案例4-2,71,2020/9/18, 根据表单提交的数据跳转 ,案例4-2,72,2020/9/18, OK! 登录成功 ,案例4-2,73,2020/9/18, 对不起 你无权访问 ,案例4-2,74,2020/9/18, forward动作的例子 test test ,案例4-3,75,2020/9/18, ,案例4-3,76,2020/9/18,掌握JSP指令标记 掌握JSP动作标记 能够区分include指令标记同include动作,总 结,77,2020/9/18,请简答叙述include指令标记和include动作标记的不同 编写两个JSP页面:main.jsp和lader.jsp,将两个JSP页面保存在同一Web服务目录中。main.jsp使用include动作标记动态加载lader.jsp页面。lader.jsp页面可以计算并显示梯形的面积。当lader.jsp被加载时获取main.jsp页面中include动作标记的param子标记提供的梯形的上底、下底和高的值。,课后作业,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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