




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSP程序设计一、概述1.3 JSP页面与Web服务目录1. 访问JSP页面的四种方式:(1)根目录:.webappsRoot,直接通过/JSP文件名访问(2)webapps下的Web服务目录:.webappsMyWeb,可通过/MyWeb/JSP文件名访问,新建后不必重启Tomcat服务器;(3)新建Web服务目录:需要事先配置conf文件夹下的server.xml,添加:,修改后必须重启Tomcat服务器;(4)在已建立好的Web服务目录下新建路径,通过网址相对路径的方式也能访问文件。1.4 JSP运行原理1.JSP页面的运行原理: (1)当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个java文件,并对该文件编译生成字节码(.class)文件,然后执行字节码文件响应用户的请求。(2)当该JSP页面再次被请求执行时,JSP将直接执行字节码文件来响应用户,从而提高JSP页面的访问速度。2.JSP页面的执行过程:(1)JSP引擎将JSP页面中的HTML标记发送到用户浏览器,由浏览器中的HTML解释器负责解释执行HTML标记;(2)JSP引擎处理JSP标记,并将有关的处理结果发送到用户浏览器上;(3)执行“”之间的Java程序片,把执行结果以字符串的形式交由用户浏览器显示;(4)当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程,负责执行字节码文件响应请求。二、JSP页面与JSP标记2.1 JSP页面的基本结构(1)HTML标记(2)JSP标记(3)变量/方法的声明(4)Java程序片(5)Java表达式 % out.println(Hello World); / java程序片 % 2.2 变量和方法的声明(1)在整个JSP页面内有效,与位置无关,习惯写在前面;(2)在中声明的变量成为JSP页面(类)的成员变量;(3)多用户访问JSP页面时,页面的成员变量在多个线程之间共享。(4)避免用户在操作成员变量时变量被其他用户修改,有以下两种方法: 合理配置变量作用域; 对操作成员变量的方法使用synchronize关键字修饰。2.3 Java程序片(1)一个JSP页面可以有许多可分割的Java程序片,JSP引擎会按顺序执行它们;(2)Java程序片中声明的变量称为JSP页面的局部变量;(3)多用户访问JSP页面时,页面的Java程序片在多个线程中独立运行。2.4 表达式(1)不能在表达式中插入语句,如是错误的;(2)%和=之间不能有空格;(3)表达式的值交由服务器计算,计算结果以字符串的形式发送至用户端显示。2.5 JSP中的注释(1)HTML注释:用户可通过浏览器查看HTML注释的内容;(2)JSP注释:编译JSP页面时将忽略JSP注释,用户无法查看JSP注释的内容。2.6 JSP指令标记(静态)2.6.1 page指令标记 定义JSP页面的属性及其取值page属性的取值:(1)language:脚本语言,目前只能取java(默认取值);(2)import:为 JSP页面引入Java核心包中的类,如:默认引入了java.lang.*, javax.servlet, javax.servlet.jsp.*和javax.servlet.http.*;(3)contentType:确定JSP页面响应的MIME类型(打开方式)及字符编码;如:contentType属性只能指定一个值,不允许指定多值;(4)session:是否需要使用内置的session对象(见4.3节),默认为true;(5)buffer:设置内置输出流out对象(见4.4节)的缓冲区大小,默认8KB,取值none表示不使用缓冲区;(6)autoFlush:当out对象的缓冲区被填满时,缓冲区是否自动刷新,默认true;当取值false时,缓冲区满会出现缓存溢出异常;buffer取值none时该属性无法设置。(7)isThreadSafe:设置JSP页面是否可多线程访问,默认true;(8)info:JSP页面设置一个常用且经常修改的字符串值,可通过getServletInfo()方法调用。2.6.2 include指令标记 在该指令处静态插入一个文件插入的jsp文件中,page指令的contentType属性的值要与原文件保持一致。2.7 JSP动作标记(动态)2.7.1 param动作标记 为其他标记以名值对的形式传递参数不能单独使用,只能作为include、forward和plugin动作的子标记使用。2.7.2 include动作标记 动态加载文件 或param子标记注include指令标记与include动作标记的区别:include指令标记:编译时处理文件,依赖于当前JSP页面,执行速度快;include动作标记:运行时处理文件,可使用param子标记灵活处理,执行速度慢;2.7.3 forward动作标记 页面重定向 或param子标记地址不变,属于服务器端的跳转,可用param子标记向跳转页面传参;转向的文件可以使用request内置对象获取param子标记的name属性的值2.7.4 plugin动作标记 加载Java plugin插件,运行Java applet小程序提示用户浏览器是否支持插件下载的信息2.7.5 useBean动作标记 创建、使用JavaBean(见第七章)习题二:T2:两次(Java程序片在多线程中独立运行)T3:不允许,允许(contentType属性只能指定一个值)T4:第一个用户显示sum的值为610,第二个用户显示sum的值为610+600=1210。T6:见2.7.2注三、Tag文件与Tag标记使用Tag文件的优点:(1)代码复用(2)数据处理与数据显示分离,有利于页面维护;用户不能通过Web服务目录直接访问Tag文件。3.1 Tag文件的结构(tag指令见3.4.1节)tag文件内容,要求同jsp文件3.2 Tag文件的存储目录 Webapps目录WEB-INFtags3.3 Tag标记3.3.1 Tag标记与Tag文件 JSP页面必须通过调用Tag标记调用Tag文件 或标记体注此处“对象”指的是JSP文件向Tag文件传递的参数名3.3.2 Tag标记的使用使用Tag标记调用Tag文件前,需要使用taglib指令引入Web服务目录下的标记库:若干个Tag文件所对应的Tag标记组成一个标记库,标记库可以有若干个,引入标记库后,可以使用带前缀的Tag标记调用Tag文件。注(1)标记库必须以/WEB-INF/tags开头; (2)Tag文件中声明的变量,会在Tag文件执行完毕后立即释放内存空间。JSP处理Tag标记的原理:(1)Tag文件被首次调用或被修改时,JSP依次将该文件转译(java文件)、编译(.class字节码文件)并执行;(2)Tag文件已经编译成字节码文件时,JSP直接执行该文件。3.3.3 Tag标记的标记体 动态向Tag文件传递信息标记体Tag文件通过使用来处理从jsp文件传递过来的标记体。(将Tag文件中的doBody标记替换成jsp文件中的标记体)3.4 Tag文件中的常用命令3.4.1 tag指令 指定tag文件某些属性的值也可以使用多个tag指令分别指定tag文件各个属性的值tag指令的属性:(1)body-content:JSP中的Tag标记是否有标记体,以及标记体内容的类型: empty:Tag标记无标记体; tagdependent:Tag标记可以有标记体,且标记体按纯文本处理; scriptless(默认):Tag标记可以有标记体,但标记体中不能有Java程序片;(2)language:Tag文件使用的脚本语言,与JSP页面中的language属性类似;(3)import:向Tag文件引入Java核心包中的类,与同JSP页面import属性类似;(4)pageEncoding:指定Tag文件字符编码,默认值为ISO-8859-1;3.4.2 include指令:与JSP页面中的include指令类似。3.4.3 attribute指令 接收从JSP页面Tag标记中传来的对象(参数)name:从JSP页面的Tag标记传递过来的对象名(必须有);require: true:JSP页面必须传递该对象,若没有传递则产生错误; false(默认):JSP页面可以不传递该对象;type:传递对象的类型,必须带上包名,如java.lang.String(默认);注(1)Tag文件中定义的变量名与attribute指令接收的对象名相同时,变量将覆盖对象名,使其失效。(2)标记和attribute指令的区别: 标记是通过替换的方式接收JSP页面传递的信息; attribute指令是通过传值的方式接收JSP页面传递的信息; 标记接收传递信息的类型大部分是字符串; attribute指令可以接收除字符串外其他类型的对象; 标记可以接收Java程序片,而attr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省滦南县2025年上半年公开招聘村务工作者试题含答案分析
- 2025电子商务合同模板定制与审核合同
- 2025房地产认筹参与资格认定标准及服务协议
- 2025版外国投资者投资担保服务合同
- 2025年十一十二章公共服务项目行政合同范本
- 2025版文化艺术产品定向采购合同下载
- 2025版牲畜养殖项目承包与养殖技术研发合同
- 2025版二级建造师建筑工程施工进度管理聘用合同模板
- 2025版租赁车辆不计免赔特约险合同
- 2025年房屋拆除工程安全文明施工合同
- 2025-2026学年人教版小学数学四年级上册教学计划及进度表
- 水泥路施工安全知识培训课件
- 2025年秋季学期(统编版)二年级上册语文教学工作计划及教学进度表
- 2025年福建省厦门市【辅警协警】笔试真题(含答案)
- 2025年浙江省医疗器械专业技术资格考试(医疗器械专业知识与技能)历年参考题库含答案详解(5卷)
- 2025年云南警务辅助人员招聘考试(基本法律知识和公文写作)历年参考题库含答案详解(5卷)
- (2025年标准)委托他人要账协议书
- 2025-2030中国青少年无人机教育课程体系构建与创新能力培养研究
- 2025年金融消费者权益保护考试题与答案
- 中学2025年秋季第一学期开学工作方案
- 《跨越百年的美丽》课件 中职语文上册
评论
0/150
提交评论