Java语言程序设计-JSP程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第十二章JSP程序设计JAVA语言程序设计2目录12.1JSP简介12.2JSP与JavaBean12.3JSP标签库12.4JSP与Servlet12.5本章小结312.1JSP简介servlet和JSP(JavaServerPage)–已成为开发电子商务等动态网站的首选技术,它们都是运行在服务器上的Java程序–servletHTML的编写和维护都比较困难,使用print语句生成HTML并不容易,非Java开发人员很难处理这些HTML–JSP静态内容的输出都采用标准的HTML,只用java语言编写页面中生成动态内容的代码提供了对Java编程语言以及针对动态部分的servlet技术的完全访问412.1.1什么是JSP程序JSP–简单的说,就是嵌入了Java代码的HTML,由静态HTML、专用的JSP标签和Java代码组成–服务器端的技术。在后台被自动转换成servlet–仅在修改后的第一次被访问时,才会被转换成servlet并进行编译,创建JSP唯一的一个一实例,并调用_jspInit完成初始化,之后每个用户请求都会创建一个调用JSP实例的_jspService方法的线程。因而多个并发请求会导致多个线程同时调用_jspService–Tomcat中,默认目录下的JSP文件被转换生成的servlet文件及编译后生成的class文件被放在install_dir/work/Catalina/localhost/_/org/apache/jsp目录下JSP简介512.1.1什么是JSP程序——JSP页面被请求后的操作JSP简介将JSP页面转换为servlet编译servlet将servlet载入到服务器内存中调用jspInit调用_jspService页面初次创建请求1有有有有有请求2无无无无有服务器重启后请求3无无有有有请求4无无无无有页面修改后请求5有有有有有请求6无无无无有6JSP文件在服务器的部署–可以和常规的HTML页面放在相同的目录中,并使用和常规HTML相同的URL访问它们–除了不允许将WEB-INF和META-INF作目录名之外,可以使用任何喜欢的目录名–Tomcat中JSP的默认目录是install_dir/webapps/ROOT,我们只要把编写好的JSP文件直接放在此目录下即可例如install_dir/webapps/ROOT/SomeDirectory/SomeFile.jsp则对应的URL为什么是JSP程序——JSP文件在服务器的部署JSP简介712.1.2JSP语法概述除了标准的HTML以外,JSP主要包括三类组件–脚本元素(scriptingelements)使你可以向JSP文件产生的servlet文件中插入代码–指令标签(directives)将影响由JSP页产生的servlet的总体结构–动作标签(actions)影响JSP运行时的功能JSP简介8脚本元素——向JSP文件产生的servlet文件中插入代码,主要有三种形式–表达式%=expression%%和=之间不能有空格。expression必须能求值,服务器计算出值后以字符串形式发送到客户端显示–程序片%code%一个JSP页面可以有许多,它们将被插入到生成的servlet文件的_jspService方法中每次客户端请求都会新开一个线程,调用servlet的service方法,service方法再调用_jspService方法JSP简介12.1.2JSP语法概述——脚本元素9–声明语句%!Declaration%声明的内容包括变量和方法,将被插入到生成servlet的类体中,在_jspService方法之外,成为类变量和类方法,直到服务器关闭才被释放当多个客户请求一个JSP页面时,多个线程将共享这些变量和方法,因而任何一个用户对这些变量操作的结果,都会影响到其他用户12.1.2JSP语法概述——脚本元素JSP简介10指令标签–将影响由JSP页产生的servlet的总体结构–其格式为%@directiveattribute1=value1,attribute2=value2,┄%directive代表指令名称attribute代表该指令中可选的属性名称value代表属性值并且总是用单引号或双引号括起来,要想在属性值value中输出引号,可在该引号前用一个反斜杠“\”–在JSP中,有三种类型的指令pageincludetaglibJSP简介12.1.2JSP语法概述——指令标签11page指令–可放在文档内的任何位置,该指令对整个页面有效–可以定义一个或多个大小写敏感的属性,包括import、contentType、isThreadSafe、Session、buffer等–import属性为JSP页面引入Java核心包中的类,这样就可以在脚本部分使用这些类,如:%@pageimport=java.io.*%可以为import属性指定多个值,这些值用逗号分割,这样就可以引入若干个包或类,如:%@pageimport=java.io.*,java.awt.*,java.util.Date%JSP页面默认import属性已经有如下的值:java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*“除import属性外,Page指令的其它属性只能指定一个值JSP简介12.1.2JSP语法概述——指令标签/page指令12–contentType属性定义JSP页面相应的MIME(MultipurposeInternetMailExtension,多用途Internet邮件扩展)类型和JSP页面字符编码其属性使用以下两种格式之一%@pagecontentType=MIME-Type;charset=Character-Set%或者%@pagecontentType=MIME-Type%例如%@pagecontentType=application/vnd.ms-excel;charset=GB2312%其属性默认值为%@pagecontentType=text/html;charset=ISO-8859-1%JSP简介12.1.2JSP语法概述——指令标签/page指令13–isThreadSafe属性用来设置JSP页面是否可多线程访问设为true时,JSP页面能同时响应多个客户的请求设为false时,同一时刻只能处理一个客户的请求,其它客户须等待其默认值为true–session属性表示当前的JSP页面是否参与HTTP会话设为true时,可以使用内置的javax.Servlet.HttpSession类型的一个名为session的对象设为false时,则该对象不被创建默认值为trueJSP简介12.1.2JSP语法概述——指令标签/page指令14–buffer属性指定jsp内置输出流out变量使用的缓冲区的尺寸,如果设置为none,则不使用缓冲区默认值是8kbout变量是JspWriter类型的,JspWriter是java.io.Writer类的子类。累计输出内容超过了这里设定的大小、完成了此页、或者输出被明确清除(如使用response.flushBuffer),文档才被发送给客户显示例如%@pagebuffer=16kb%–autoflush属性控制out的缓冲区在装满时的处理,默认为true设为true时,装满时则自动清除缓冲区设为false时,装满后则会出现异常buffer的值是none时将autoflush设为false是不合法的JSP简介12.1.2JSP语法概述——指令标签/page指令15–info属性定义了一个通过getServletInfo方法可从servlet中检索到的串格式为%@pageinfo=someMessage%–isErrorPage属性指明当前页是否能充当其它JSP页面的错误页。采用以下两种格式之一%@pageisErrorPage=true%或者%@pageisErrorPage=false%%--Default--%。–errorPage属性指定一个处理当前页未被捕获的任何异常的页面格式为%@pageerrorPage=RelativeURL%–这个URL指定的错误页的isErrorPage属性必须被设为true方可使用JSP简介12.1.2JSP语法概述——指令标签/page指令16include指令–与page指令不同,该指令应该放在你想要将外部文件插入的位置,它可以将文件整体插入到该处–其格式为%@includefile=fileName%–Jsp文件被转换成servlet文件时,外部文件就被插入了,然后统一进行编译–当外部文件发生改变时,当前页面无法得到通知,要想得知外部文件的任何改变,当前页面必须重新编译,由上一节jsp的操作过程可知,必须重新保存该jsp文件12.1.2JSP语法概述——指令标签/include指令JSP简介17taglib指令–JSP1.1规范中新增的–指定一个标记库,用于扩充标准的JSP标记集–完成三个任务首先,它通知JSP服务器,页面使用一个标记库其次,它指定包含标记库标志符的特殊jar文件的位置最后,它指定一个用于唯一区分这些新标记的标记前缀–格式为:%@tagliburi=someuriprefix=somename%uri属性:一个引用标记库描述符文件(后缀名为TLD:TagLibraryDescriptor)的绝对或相对URLprefix属性:指定一个将要在TLD文件定义的标记名前面使用的前缀如果TLD文件定义了一个名为tag1的标记,并且prefix属性的值设为test,那么实际的标记名将为test:tag112.1.2JSP语法概述——指令标签/taglib指令JSP简介18动作标签–一种特殊的标签,影响JSP运行时的功能–格式为jsp:action_nameattribute1=value1,attribute2=value2┄/action_name代表动作名称attribute代表属性名称value代表属性值–分为两类Resource动作JavaBean动作JSP简介12.1.2JSP语法概述——动作标签19Resource动作–include动作标签告诉JSP页面动态包含一个文件,即JSP页面运行时才将文件加入,例如:jsp:includepage=someFile.html/–如果包含的是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示–如果包含的是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端显示–如果修改了被包含的文件,那么运行时将看到修改后的结果,这一点和include指令不同可结合param指令,向要包含的文件传送信息,被包含的文件通过JSP的内置对象request调用getParameter方法获得参数值。格式为:jsp:includepage=someFile.jspjsp:paramname=someNamevalue=someValue//jsp:includeJSP简介12.1.2JSP语法概述——动作标签/Resource动作20–forward动作标签告诉JSP页面从该指令处停止当前页面的继续执行,而转向其他的一个页面,当前页面后边的内容将不被执行,例如:jsp:forwardpage=somefile.jsp/该标签也可结合param指令,向要转到的页面传送信息,格式同include标签JSP简介12.1.2JSP语法概述——动作标签/Resource动作21–

1 / 104
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功