Java语言程序设计-JSP程序设计.ppt
《Java语言程序设计-JSP程序设计.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计-JSP程序设计.ppt(104页珍藏版)》请在咨信网上搜索。
1、1第十二章第十二章 JSP程序设计程序设计JAVA语言程序设计2目录12.1 JSP简介12.2 JSP与JavaBean12.3 JSP标签库12.4 JSP与Servlet12.5 本章小结312.1 JSP简介servlet和JSP(JavaServer Page)已成为开发电子商务等动态网站的首选技术,它们都是运行在服务器上的Java程序servletHTML的编写和维护都比较困难,使用print语句生成HTML并不容易,非Java开发人员很难处理这些HTMLJSP静态内容的输出都采用标准的HTML,只用java语言编写页面中生成动态内容的代码提供了对Java编程语言以及针对动态部分的
2、servlet技术的完全访问412.1.1 什么是JSP程序JSP简单的说,就是嵌入了Java代码的HTML,由静态HTML、专用的JSP标签和Java代码组成服务器端的技术。在后台被自动转换成servlet仅在修改后的第一次被访问时,才会被转换成servlet并进行编译,创建JSP唯一的一个一实例,并调用_jspInit完成初始化,之后每个用户请求都会创建一个调用JSP实例的_jspService方法的线程。因而多个并发请求会导致多个线程同时调用_jspServiceTomcat中,默认目录下的JSP文件被转换生成的servlet文件及编译后生成的class文件被放在install_dir/
3、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无无无无有6JSP文件在服务器的部署可以和常规的HTML页面放在相同的目录中,并使用和常规HTML相同的URL访问它们除了不允许将WEB-INF和META-INF作目录名之外,可以使用任
4、何喜欢的目录名Tomcat中JSP的默认目录是install_dir/webapps/ROOT,我们只要把编写好的JSP文件直接放在此目录下即可例如install_dir/webapps/ROOT/SomeDirectory/SomeFile.jsp则对应的URL为http:/host:port/SomeDirectory/SomeFile.jsp12.1.1 什么是JSP程序 JSP文件在服务器的部署JSP简介712.1.2 JSP语法概述除了标准的HTML以外,JSP主要包括三类组件脚本元素(scripting elements)使你可以向JSP文件产生的servlet文件中插入代码指令标
5、签(directives)将影响由JSP页产生的servlet的总体结构动作标签(actions)影响JSP运行时的功能JSP简介8脚本元素向JSP文件产生的servlet文件中插入代码,主要有三种形式表达式%和=之间不能有空格。expression必须能求值,服务器计算出值后以字符串形式发送到客户端显示程序片一个JSP页面可以有许多,它们将被插入到生成的servlet文件的_jspService方法中每次客户端请求都会新开一个线程,调用servlet的service方法,service方法再调用_jspService方法JSP简介12.1.2 JSP语法概述 脚本元素9声明语句声明的内容包括
6、变量和方法,将被插入到生成servlet的类体中,在_jspService方法之外,成为类变量和类方法,直到服务器关闭才被释放当多个客户请求一个JSP页面时,多个线程将共享这些变量和方法,因而任何一个用户对这些变量操作的结果,都会影响到其他用户12.1.2 JSP语法概述 脚本元素JSP简介10指令标签将影响由JSP页产生的servlet的总体结构其格式为directive代表指令名称attribute代表该指令中可选的属性名称value代表属性值并且总是用单引号或双引号括起来,要想在属性值value中输出引号,可在该引号前用一个反斜杠“”在JSP中,有三种类型的指令pageincludeta
7、glibJSP简介12.1.2 JSP语法概述 指令标签11page指令可放在文档内的任何位置,该指令对整个页面有效可以定义一个或多个大小写敏感的属性,包括import、contentType、isThreadSafe、Session、buffer等import属性为JSP页面引入Java核心包中的类,这样就可以在脚本部分使用这些类,如:可以为import属性指定多个值,这些值用逗号分割,这样就可以引入若干个包或类,如:JSP页面默认import属性已经有如下的值:java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.htt
8、p.*“除import属性外,Page指令的其它属性只能指定一个值JSP简介12.1.2 JSP语法概述 指令标签/page指令12contentType属性定义JSP页面相应的MIME(Multipurpose Internet Mail Extension,多用途Internet 邮件扩展)类型和JSP页面字符编码其属性使用以下两种格式之一 或者例如其属性默认值为JSP简介12.1.2 JSP语法概述 指令标签/page指令13isThreadSafe属性用来设置JSP页面是否可多线程访问设为true时,JSP页面能同时响应多个客户的请求设为false时,同一时刻只能处理一个客户的请求,其
9、它客户须等待其默认值为truesession属性表示当前的JSP页面是否参与HTTP会话设为true时,可以使用内置的javax.Servlet.HttpSession类型的一个名为session的对象设为false时,则该对象不被创建默认值为trueJSP简介12.1.2 JSP语法概述 指令标签/page指令14buffer属性指定jsp内置输出流out变量使用的缓冲区的尺寸,如果设置为none,则不使用缓冲区默认值是8kbout变量是JspWriter类型的,JspWriter是java.io.Writer类的子类。累计输出内容超过了这里设定的大小、完成了此页、或者输出被明确清除(如使用
10、response.flushBuffer),文档才被发送给客户显示例如 autoflush属性控制out的缓冲区在装满时的处理,默认为true设为true时,装满时则自动清除缓冲区设为false时,装满后则会出现异常buffer的值是none时将autoflush设为false是不合法的JSP简介12.1.2 JSP语法概述 指令标签/page指令15info属性定义了一个通过getServletInfo方法可从servlet中检索到的串格式为 isErrorPage属性指明当前页是否能充当其它JSP页面的错误页。采用以下两种格式之一或者。errorPage属性指定一个处理当前页未被捕获的任何
11、异常的页面格式为 这个URL指定的错误页的isErrorPage属性必须被设为true方可使用JSP简介12.1.2 JSP语法概述 指令标签/page指令16include指令与page指令不同,该指令应该放在你想要将外部文件插入的位置,它可以将文件整体插入到该处其格式为 Jsp文件被转换成servlet文件时,外部文件就被插入了,然后统一进行编译当外部文件发生改变时,当前页面无法得到通知,要想得知外部文件的任何改变,当前页面必须重新编译,由上一节jsp的操作过程可知,必须重新保存该jsp文件12.1.2 JSP语法概述 指令标签/include指令JSP简介17taglib指令JSP1.1
12、规范中新增的指定一个标记库,用于扩充标准的JSP标记集完成三个任务首先,它通知JSP服务器,页面使用一个标记库其次,它指定包含标记库标志符的特殊jar文件的位置最后,它指定一个用于唯一区分这些新标记的标记前缀格式为:uri属性:一个引用标记库描述符文件(后缀名为TLD:Tag Library Descriptor)的绝对或相对URLprefix属性:指定一个将要在TLD文件定义的标记名前面使用的前缀如果TLD文件定义了一个名为tag1的标记,并且prefix属性的值设为test,那么实际的标记名将为test:tag112.1.2 JSP语法概述 指令标签/taglib指令JSP简介18动作标签
13、一种特殊的标签,影响JSP运行时的功能格式为action_name代表动作名称attribute代表属性名称value代表属性值分为两类Resource动作JavaBean动作JSP简介12.1.2 JSP语法概述 动作标签19 Resource动作include动作标签告诉JSP页面动态包含一个文件,即JSP页面运行时才将文件加入,例如:如果包含的是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示如果包含的是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端显示如果修改了被包含的文件,那么运行时将看到修改后的结果,这一点和include指令不同可结合param指令
14、,向要包含的文件传送信息,被包含的文件通过JSP的内置对象request调用getParameter方法获得参数值。格式为:JSP简介12.1.2 JSP语法概述 动作标签/Resource动作20forward动作标签告诉JSP页面从该指令处停止当前页面的继续执行,而转向其他的一个页面,当前页面后边的内容将不被执行,例如:该标签也可结合param指令,向要转到的页面传送信息,格式同include标签JSP简介12.1.2 JSP语法概述 动作标签/Resource动作21plugin动作标签用于插入Applet或JavaBean到JSP页面,组件必须被下载到浏览器并且在客户端执行param元
15、素可以用于发送参数到Applet或JavaBean(一个可重复使用的软件组件,实际上就是一个Java类)如:prompt message 当客户访问含该段代码的JSP文件时,如果客户端不支持applet,将导致下载Java plug插件,出现客户选择是否下载插件的界面。用户下载安装后,就可以使用Java虚拟机加载执行Java applet小应用程序A.class了fallback元素可用于指定组件失败时发送到客户端的错误信息字符串12.1.2 JSP语法概述 动作标签/Resource动作JSP简介22JavaBean动作useBean动作标签格式为或者服务器将加载该bean类的一个对象set
16、Property动作标签设置bean的属性getProperty动作标签获取bean属性的值并输出12.1.2 JSP语法概述 动作标签/JavaBean动作JSP简介2312.1.3 JSP内置对象JSP的内置对象在JSP页面的脚本元素中,有些不用声明就可以使用的对象包括out、request、response、session、application等out对象是javax.servlet.jsp.JspWriter类的实例,JspWriter包含的方法大多数与java.io.PrintWriter类一样这个输出流对象用来向客户端输出数据,其可调用的方法如下表JSP简介2412.1.3 JS
17、P内置对象(续)out对象可使用的方法名称解释print(Boolean b)输出一个布尔值print(char c)输出一个字符print(double d)输出一个双精度的浮点数print(float f)输出一个单精度的浮点数print(long l)输出一个长整型数据print(String s)输出一个字符串newLine()输出一个换行符flush()输出缓冲区里的内容close()关闭流JSP简介25request对象是javax.servlet.http.HttpServletRequest的实例客户每次请求页面时,JSP引擎创建一个request对象代表该请求封装了用户提交的
18、信息,这些信息包括HTTP请求的请求行HTTP头信息体调用相应的方法可以获取封装的信息,最常用的方法是request.getParameter(param_name)12.1.3 JSP内置对象(续)request对象JSP简介2612.1.3 JSP内置对象(续)request对象的常用方法名称解释getProtocal()获取客户向服务器提交信息使用的通讯协议getServletPath()获取JSP文件的目录getContentLength()获取提交信息的长度getMethod()获取客户提交信息的方式,例如post或getgetHeaderNames()获取头名字的一个枚举getHe
19、ader(String s)获取HTTP头文件中由s指定的属性的值,例如“content-type”,“cookie”等getRemoteHost()获取客户机的名称getRemoteAddr()获取客户机的IP地址getServerName()获取服务器的名称getServerPort()获取服务器的端口号getParameterNames()获取客户提交的信息体部分中所有参数的名字getParameter(String_name)获取指定参数名字的参数值JSP简介27 response对象javax.servlet.http.httpServletResponse的实例与request对象
20、相对应,我们可以用response对象对客户的请求做出动态响应,向客户端发送数据。类似于HTTP请求,HTTP响应也由三个基本部分组成状态行:包括使用的协议以及状态代码,表示请求是否成功头:包含关于服务器和返回的文档的消息,例如服务器名称和文档类型等信息体使用这个对象的一些方法可以完成如下任务动态设置contentType属性页面重定向设置返回状态码等JSP简介12.1.3 JSP内置对象(续)response对象28JSP简介12.1.3 JSP内置对象(续)resnponse对象的常用方法名称解释setStatus(int sc)设置返回状态码setContentType(String t
21、ype)设置被发送文档的MIME类型setHeader(String name,String value)设置头中指定属性name为指定值valuesetRedirect(String location)重定向到指定URL 29会话的概念从一个客户打开浏览器连接到服务器的某个服务目录,到客户关闭浏览器离开该服务目录称为一个会话每个会话只对应于一个客户,并且可以跨多个页面session对象javax.servlet.http.HttpSession的实例,对应于会话的概念用于在使用无状态连接协议(如HTTP)的情况下跟踪关于某个客户的信息,对识别客户是非常重要的在客户首次访问某服务目录中的任何一
22、个JSP页面时创立,并且具有一个独一无二的Id号,直到客户关闭浏览器或这个session对象达到了最大生存时间,服务器端该客户的session对象才被取消调用相应的方法可以存储客户在访问各个页面期间提交的各种信息,比如姓名、编号等JSP简介12.1.3 JSP内置对象(续)session对象30JSP简介12.1.3 JSP内置对象(续)session对象的常用方法名称解释int getMaxInactiveInterval()返回会话过期前需要经过的秒数void setMaxInactiveInterval(int interval)设置某个会话的生命期long getCreationTim
23、e()返回创建会话的时间long getLastAccessedTime()返回上次使用此会话的时间void invalidate()使得session对象无效boolean isNew()判断是否是个新会话String getId()返回识别客户的独一无二的字符串Enumeration getIds()返回一个包含当前所有会话Id的枚举值void setAttribute(String key,Object value)在session对象中添加obj,并指定索引关键字为keyObject getAttribute(String name)从session对象获取关键字为key的对象void
24、 removeAttribute(String name)从session中删除指定索引关键字的对象Enumeration getAttributeName()获取session对象存储的所有键名31application对象javax.servlet.ServletContext的实例。比session对象的生存时期更长。服务器启动后,就产生了这个application对象,直到服务器关闭,该对象才被取消所有客户共享这个内置的application对象,所以任何客户对该对象中存储的数据的改变都会影响到其他客户,因此,在某些情况下,对该对象的操作需要同步处理 12.1.3 JSP内置对象(续)
25、application对象JSP简介3212.1.3 JSP内置对象(续)application对象的常用方法名称解释void setAttribute(String key,Object obj)将obj对象添加到application对象中,并为obj指定一个索引关键字key。Object getAttribute(String key)获取application对象中指定关键字的对象Enumeration getAttributeNames()返回application对象的所有索引关键字void removeAttribute(String key)删除指定索引的对象JSP简介3312
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 JSP 程序设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。